5

以下の属性にプロパティ文字列を割り当てたいと思います。

[ExtractKeyAttribute(**"Extraction"**)]

public class Extract
{
  ....
}

抽出は私の文字列ですが、そこにハードコードを入れたくありません。割り当てるためのより良い方法に関する提案

4

3 に答える 3

0

あなたのコメントでは、静的クラスにすべての (文字列) 値があると言っています。あなたの静的クラスは読み取り専用プロパティを持つクラスですか? 価値観が変わるというか。そうでない場合は、静的クラスのこれらのプロパティの一部を const 文字列値に置き換えます。これらの値を使用して属性を設定できます。

そう...

static class MyClass
{
     public string MyValue {get;}
}

次のようになります。

static class MyClass
{
     public const string MyValue= "MyValue";
}

これで、属性を次のように設定できます。

[ExtractKey(MyClass.MyValue)]
于 2013-05-01T14:29:02.280 に答える
0

実行時に属性のプロパティを変更する場合は、次のコードを使用してこれを行うことができます。

ExtractKeyAttribute myAttribute = typeof(Extract).GetCustomAttributes(typeof(ExtractKeyAttribute), false)[0] as ExtractKeyAttribute;
myAttribute.MyValue = "MyRunTimeValue";
于 2013-05-01T14:31:37.510 に答える