我花了一些时间寻找处理通用对象的替代方法,我看到类似于我的问题,但不是我想的那么具体? 协议缓冲区有多种标量类型我可以使用,但它们大多是原始的. 我希望我的消息灵活,并且能
协议缓冲区有多种标量类型我可以使用,但它们大多是原始的.
我希望我的消息灵活,并且能够拥有某种列表的字段.
假设我的.proto文件看起来像这样:
message SomeMessage
{
string datetime = 1;
message inputData // This would be a list
{
repeated Object object = 1;
}
message Object
{
? // this need to be of a generic type - This is my question
// My work around - Using extentions with some Object
//List all primitive scalar types as optional and create an extension 100 to max;
}
message someObject //some random entity - for example, employee/company etc.
{
optional string name = 1; optional int32 id = 2;
}
extend Object
{
optional someObject obj = 101;
}
}
这样就可以了,并且可以工作,并且我有一个List,其中Objects可以是任何原始类型,也可以是List< someObject>.
但是 – 这里的问题是,每当我需要处理一种新类型的对象时,我需要编辑我的.proto文件,重新编译C#和java(我需要它的语言)…
如果协议缓冲区无法处理通用对象类型,那么还有另一种选择吗?
非常感谢任何有关此事的帮助.
