2009-08-06 9 views
3

.netフレームワークに、任意のキーと値でコードをマークアップするための属性が組み込まれていますか?私はthe listを通して見てきましたが、そこに何か役に立つものは見えません。私たちは、理想的に欲しいのは組み込みの名前/値ペア属性はありますか?

[NameValuePair("MyKey", "My long bit of text")] 

を言う...そして私たちは本当にassemblyinfoのに余分な情報を埋め込むされて行うことができるようにしたいものを、実際に

に後でそれを引き出すことができるようにすることです継続的な統合ビルド時間、そして

[Assembly: NameValuePair("MyKey", "My long bit of text")] 

と同様に、私はジェフのポストについてCustom AssemblyInfo Attributesを見てきました

に後でそれを引き出して、それは良いですが、あるかどう暗黙的な属性がフレームワークに焼き付けられた場合、それはさらに良くなります。

答えて

5

名前/値のペアを表す組み込み属性はありませんが、実装するのはかなり簡単です。キーと値が常に文字列である場合は、両方の文字列をコンストラクタパラメータとして取り込む属性が必要です。

[AttributeUsage(AttributeTargets.Assembly)] 
public KeyValuePairAttribute : Attribute 
{ 
    private string key; 
    private string value; 

    private KeyValuePairAttribute() { } 

    public KeyValuePairAttribute(string key, string value) 
    { 
     this.key = key; 
     this.value = value; 
    } 
} 
+0

本当にそうです。私たちは、継続的な統合(これは苦痛の世界かもしれません!)によって構築しているそれぞれの「もの」にクラスが存在することを確認する必要がありますが、それは良い代替手段です。 –

+0

実際のソースファイルそれをリンクされたファイルとして含めることです。もう1つのオプションは、別のDLL(またはプロジェクト)でコンパイルし、そのDLL(またはプロジェクト)を他の各プロジェクトの参照として含めることです。どちらの方法でも、単一のソースコードファイルを維持するだけです。 –

+0

私はリンクされたファイルのアイデアが好きです。しかし、そこに維持するための多くの情報源があります:-) –

関連する問題