C# アプリケーションでプロトコル バッファのニーズを処理するために、protobuf-netを使用しています。.proto ファイルを他の管理されていないアプリケーションと共有しているため、.proto ファイルからコードを生成しています (コード ファーストの protobuf-net アプローチは使用していません)。可能な限りDRYを維持するために、多くのインターフェース ドキュメントを .proto ファイル自体に保存しています。プロジェクト ビルド ターゲットによって呼び出される protogen.exe によって C# コードを生成します。
これらのコメントをコンパイル済みの C# コードに (自動的に) 転送する方法はありますか?
基本的に、次のような .proto が与えられます。
// This message is used to request a resource from the server
message GetResource
{
// The identifier of the requested resource
required string resourceId = 1;
}
...次のようなものが欲しいです(読みやすくするためにIExtensibleメソッドは省略されています):
/// <summary>
/// This message is used to request a resource from the server
/// </summary>
[global::System.Serializable,global::ProtoBuf.ProtoContract(Name=@"GetResource")]
public partial class GetResource : global::ProtoBuf.IExtensible
{
public GetResource() {}
private string _resourceId;
/// <summary>
/// The identifier of the requested resource
/// [Required] <-- Would be nice...
/// </summary>
[global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"resourceId",
DataFormat = global::ProtoBuf.DataFormat.Default)]
public string ResourceId
{
get { return _resourceId; }
set { _resourceId = value; }
}
}