DataContracts を使用したアセンブリがあり、Java システムとデータを交換できるように .proto スキーマを生成する必要があります。DataContracts コードは変更できますが、protobuf-net アセンブリの依存関係が発生するため[ProtoContract]
、属性を追加できません。[ProtoMember]
システムの 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 {
}