债券通信框架已弃用

时间:2017-04-12 12:05:24

标签: c# idl grpc bond

我使用了bond-compiler 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-flag?

1 个答案:

答案 0 :(得分:2)

Bond C#gRPC绑定首次在Bond C#5.3.0中发布,已于2017-04-14发布。您需要将所有Bond NuGet软件包升级到5.3.0才能开始使用它。

您看到编译器默认生成Comm文件,因为您使用的是早于5.3.0的版本。

如5.3.0版本的changelog(以及Bond Comm 0.11.0版本)中所述,默认情况下不再为C#生成Bond Comm文件。要继续使用Bond Comm C#,您需要开始将--comm传递给gbc。有example表示需要进行哪些更改。

如果要开始使用C#gRPC绑定,则需要传递--grpc选项。 gRPC example也显示了如何执行此操作。