我正在编写一个通用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) )。