我花了一些时间寻找处理通用对象的替代方法,我看到类似于我的问题,但不是我想的那么具体? 协议缓冲区有多种标量类型我可以使用,但它们大多是原始的. 我希望我的消息灵活,并且能
协议缓冲区有多种标量类型我可以使用,但它们大多是原始的.
我希望我的消息灵活,并且能够拥有某种列表的字段.
假设我的.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(我需要它的语言)…
如果协议缓冲区无法处理通用对象类型,那么还有另一种选择吗?
非常感谢任何有关此事的帮助.