Я использовал компилятор связей gbc, чтобы создать для меня некоторый объект и определение службы:
namespace Something;
struct SomeStruct
{
0: string SomeName;
}
struct SomeResponse
{
0: string ResponseString;
}
service SomeService
{
SomeResponse DoSomething(SomeStruct);
}
Компилятор сгенерировал определение класса Something_services.cs
с этой сигнатурой:
[System.CodeDom.Compiler.GeneratedCode("gbc", "0.8.0.0")]
public abstract class SomeServiceServiceBase : ISomeService, global::Bond.Comm.IService
Мне было интересно узнать об интерфейсе IService, и я хотел узнать об этом больше, и пришел к документации Bond Communications Framework (https://microsoft.github.io/bond/manual/bond_comm.html). Первое, что я прочитал, это то, что Bond.Comm устарел, и вам следует использовать Bond-over-gRPC (https://microsoft.github.io/bond/manual/bond_over_grpc.html).
У меня есть два вопроса:
- Кто-нибудь знает, почему это устарело, но по умолчанию все еще используется компилятором?
- Кто-нибудь может объяснить разницу между Bond.Comm и Bond-over-gRPC?
Заранее спасибо!
ИЗМЕНИТЬ
И возник третий вопрос: как использовать --grpc-flag, упомянутый в документации?