Как через protobuf-net настроить автоматическую генерацию классов по контракту?
В общем, у меня есть вот такой просто *.proto-файл:
syntax = "proto3";
package MyApp;
service MyService {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
В файле проекта прописал вот это:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="protobuf-net" Version="3.2.56"/>
<PackageReference Include="protobuf-net.BuildTools" Version="3.2.52">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="protobuf-net.Grpc" Version="1.2.2"/>
<PackageReference Include="protobuf-net.Grpc.ClientFactory" Version="1.2.2"/>
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Protos\*.proto" Services="Client" OutputPath="Generated"/>
</ItemGroup>
</Project>
Но почему-то в проекте становятся доступные только сообщения, но самого сервиса или интерфейса сервиса нет.
Что я делаю не так? Как правильно настроить?
Источник: Stack Overflow на русском