我使用了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)。
我有两个问题:
提前致谢!
修改
发生了第三个问题:如何使用文档中提到的--grpc-flag?
答案 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也显示了如何执行此操作。