Облигационные рамки связи устарели
Я использовал компилятор связи 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 Doku ( 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, упомянутый в документации?
1 ответ
Привязки Bond C# gRPC впервые были представлены в Bond C# 5.3.0, выпущенном 2017-04-14. Вам нужно будет обновить все ваши пакеты Bond NuGet до версии 5.3.0, чтобы начать использовать его.
Вы видите, что компилятор генерирует файлы Comm по умолчанию, потому что вы используете версию более раннюю, чем 5.3.0.
Как отмечено в журнале изменений для выпуска 5.3.0 (и выпуска Bond Comm 0.11.0), файлы Bond Comm больше не создаются по умолчанию для C#. Чтобы продолжать использовать Bond Comm C#, вам нужно начать проходить --comm
к ГБЦ. Есть пример, который показывает, какие изменения необходимы.
Если вы хотите начать использовать привязки C# gRPC, вам нужно будет передать --grpc
вариант. Пример gRPC показывает, как это сделать.