我的问题与此类似,除了我想与 protobuf-net 一起使用的代码是由 WSDL 实用程序生成的。“他们告诉我”计划修改生成的代码(添加属性)是不合适的。
编写一些东西来构建一组匹配的 DTO 类是很奇怪的,因为(除了所描述的方法)所有类已经是标记为 [Serializable] 的公共(部分)类并且具有所有公共属性——也就是说,它们已经非常像 DTO。
我见过的最简单的解决方案是违反规则并修改代码。如果生成的 C# 文件中的所有字符串
public partial class
被替换为
[ProtoBuf.ProtoContract(ImplicitFields = ProtoBuf.ImplicitFields.AllPublic)]
public partial class
从我有限的测试中可以解决问题。是否存在更好的解决方案?使用该技术是否有问题(除了我正在修改生成的代码)?