邦德通讯框架已过时
从来就所使用的键的编译器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)。
我有两个问题:
- 是否有人知道,这是为什么depracted但默认情况下仍然使用编译器?
- 有没有人可以解释Bond.Comm和Bond-over-gRPC之间的区别?
在此先感谢!
编辑
而第三个问题发生:如何使用文档中提到的--grpc标志?
Bond C#gRPC绑定首次发布于Bond C#5.3.0,该版本于2017-04-14发布。您需要将所有Bond NuGet软件包升级到5.3.0才能开始使用它。
由于您使用的是早于5.3.0的版本,因此默认情况下编译器会生成Comm文件。
如在5.3.0版本(和Bond Comm 0.11.0版本)的changelog中所指出的,对于C#,默认情况下不再生成Bond Comm文件。要继续使用Bond Comm C#,您需要开始将--comm
传递给gbc。有一个example表明需要进行哪些更改。
如果你想开始使用C#gRPC绑定,你需要通过--grpc
选项。 gRPC example显示了如何做到这一点。
非常感谢!我会继续寻找:) – Joshit
我不打算回答“是否有人能够解释Bond.Comm和Bond-over-gRPC之间的区别?”作为其中的一部分。感觉这是一个足够不同的问题,它保证它自己的问题和答案。 – chwarr