【发布时间】:2013-06-16 14:20:20
【问题描述】:
我有一个带有 DataContracts 的程序集,我需要生成 .proto 模式,以便它能够与 java 系统交换数据。 DataContracts 代码可以更改,但我不能在其中添加 [ProtoContract] 和 [ProtoMember] 属性,因为它会导致 protobuf-net 程序集依赖。我们在系统的 C# 部分使用 WCF,因此我们不希望在大多数不适用于 java 系统的 C# 项目中依赖 proto-buf 程序集。
在 GettingStarted 部分的 protobuf-net 网站上,据说:
不喜欢属性?
在 v2 中,所有可以用属性完成的事情也可以在运行时通过 RuntimeTypeModel 进行配置。
但是我不知道如何在没有属性的情况下实际配置序列化,并且我还没有看到任何示例。
我正在努力
[DataContract]
public class MyEntity
{
[DataMember(Order = 1)]
public String PropertyA { get; set; }
[DataMember(Order = 2)]
public int PropertyB { get; set; }
}
RuntimeTypeModel.Default.Add(typeof(MyEntity), false);
string proto = Serializer.GetProto<MyEntity>();
并得到以下作为proto的值
package ProtobufTest;
message MyEntity {
}
【问题讨论】:
标签: c# protobuf-net