【发布时间】:2014-09-25 15:02:37
【问题描述】:
目前我们定义了几条消息,其中包括 System.Type 字段/属性。 protobuf-net 处理 System.Type 的内置行为在许多情况下都很好,但在我们的情况下无法使用:我们确实希望类型序列化其全名,但需要控制按名称查找。
我无法为此找到合适且可行的解决方案。一方面,excellent answer 解释了如何为 System.Type 注册代理,但不幸的是,这似乎不再起作用,因为 System.Argument 异常抛出“这种类型的数据具有内置行为,并且不能以这种方式添加到模型中:System.Type"。
另一方面,“TypeModel.DynamicTypeFormatting”事件在以下情况下似乎没有被调用:
[ProtoContract]
public class Foo { [ProtoMember] public List<Type> Types; }
目前有没有一种方法可以快速解决这个问题,而无需我们提供带有快速修复的自定义版本?
【问题讨论】:
-
建议:为什么不简单地序列化
List<string>或类似的? -
虽然可能我更喜欢不需要每条消息都经过额外步骤才能再次获取类型列表的解决方案。代理解决方案不起作用是否有特定原因?
-
我不愿更改消息格式的另一个原因是我们已经有大量包含上述序列化消息的数据,我不想再次生成它。
-
k;我需要看看在这种情况下发生了什么
-
啊,对;那将解释它,然后;您可能希望将您的编辑添加为答案
标签: c# protobuf-net