1

現在、実行時にメタデータ/ドキュメントの一部を公開する必要があるシステムを開発しています。XML コメントを使用して、独自の Reflection 拡張メソッドを介してそのデータをアプリに戻す方法があることは知っています。

System.ComponentModel 名前空間 (ただし System アセンブリにあります) の description 属性を使用する方が簡単かもしれません。このようにして、私と他の開発者は通常のリフレクションを使用してフィールドの説明を取得できます。カスタム属性を使用するよりもむしろこれを使用します。このアプローチの欠点は何ですか?

例:

public Customer
{
    public int Id { get; set; }
    [Description("The common friendly name used for the customer.")]
    public string Name { get; set; }
    [Description("The name used for this customer in the existing Oracle ERP system.")]
    public string ErpName { get; set; }
}
4

1 に答える 1

1

私はまったく同じことを行っています (ERP ソフトウェアでも同様です!) 欠点はありません。アーキテクチャによっては、状況の欠点として考えられることの 1 つは、多くのドキュメンテーション ツールが直接的または間接的に XML コメントに基づいていることです。説明属性を取得できない可能性があります。しかし、私たちのアーキテクチャでは、Description 属性コードは実際にはドキュメントのマスター/ソースではありません。すべてのプロパティを定義および説明する MetaData のデータベースがあります。XML コメントを生成し同じソースからの説明属性。実際、私たちの場合、XML コメントをまったく生成せず、通常は XML コメントによって直接生成される XML ファイルを直接生成します。これは、私たちが使用するドキュメンテーション ツールで使用されるファイルです。説明属性を直接受け入れることができない場合、xml コメントによって出力される xml ファイルに依存するドキュメンテーション ツールを使用する場合は、説明属性を同様の XML ファイルに抽出する単純なユーティリティをおそらく作成できます。

于 2013-02-26T20:18:30.553 に答える