3

ある程度の一貫性を保つために、多くのオブジェクト モデルにコード生成を使用します。その派生の 1 つは、別の生成モジュールを介して ProtocolBuffers の .proto ファイルを生成しています。ただし、この時点で、List<T>オブジェクトで生成が発生したときの生成を実装する方法に困惑しています。

これは契約を介して可能であるように見えます:

[ProtoMember(1)]
public List<SomeType> MyList {get; set;} 

しかし、それ以外では、VSカスタムツールを使用して.protoファイルを作成するだけでこれを行う方法や可能性があるかどうかはわかりません。何かご意見は?

4

1 に答える 1

7
repeated SomeType MyList = 1;

また、100%完璧ではありませんが、試すことができますGetProto()

class Program
{
    static void Main()
    {
        Console.WriteLine(Serializer.GetProto<Foo>());
    }
}
[ProtoContract]
public class Foo
{
    [ProtoMember(1)]
    public List<Bar> Items { get; set; }
}
[ProtoContract]
public class Bar { }

与えます:

message Foo {
   repeated Bar Items = 1;
}

message Bar {
}

最後に、別の出力が必要な場合、xslt はユーザーが編集できます。

于 2010-06-17T22:20:12.843 に答える