Proto 3:继承格式消息

时间:2016-12-05 04:07:47

标签: c# protobuf-net protocol-buffers protobuf-csharp-port

我正在编写一个通用SDK,我计划使用Protobuf(由于它的优点)。 我会有一个通用标题消息,如下所示

class Header
{
  string Id;
  Datetime Timestamp;
  string ProcessName; //This is the Process in my server
  string SessionID;
}

现在,理想情况下,此消息将由应用程序消息继承并编写自己的消息。 Application消息的伪代码是

class Application : Header
{
  string AppId;
  string Message;
}

现在实施如下

Application appobj = new Application();
appobj.Id = "1";
appobj.Timestamp = DateTime.Now();
appobj.ProcessName = "ApplicationLog";
appobj.SessionId = "aaa-ee-rr"; //Guid
appobj.AppId = "App Logger";
appobj.Message = "Database";

理想情况下,当我收到消息时,我将只获得Application class proto(内部继承Header),其原型定义将不会出现在我身上,因为不同的应用程序将拥有自己的原型。服务器应用程序只有Header的proto消息,它应该读取并重定向到服务器上运行的不同进程,具体取决于"进程名称"。

另一个考虑因素是c#中的不同进程,但在Python中结合使用。我看到了protobuf-csharp-port和Protbuf-net版本(由不同的人编写)并且理解为了涉及各种编程语言,使用csharp-port比使用Protobuf-net版本更好。

我在Stackoverflow和网上搜索了很多,但我无法找到从应用程序消息中获取Header信息的解决方案,而不知道Application message proto(我只知道应用程序继承的Header proto) )。

0 个答案:

没有答案