2017-04-12 50 views
1

從來就所使用的鍵的編譯器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標誌?

+0

我不打算回答「是否有人能夠解釋Bond.Comm和Bond-over-gRPC之間的區別?」作爲其中的一部分。感覺這是一個足夠不同的問題,它保證它自己的問題和答案。 – chwarr

回答

2

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顯示瞭如何做到這一點。

+0

非常感謝!我會繼續尋找:) – Joshit