参照フィールドの属性を取得する方法
-
19-09-2019 - |
質問
私は疑問を持っています: 参照フィールドの属性を得るためのエレガントな方法はあります。 すなわち:ます。
public class C1: Base
{
[MyAttribute]
public string Field1;
}
public class Base
{
private void Do(ref string field)
{
if (field has attributes)
DoSomething();
}
}
どのように私は()メソッドドゥ内のフィールドの属性を取得できますか?
事前に感謝します。
解決
あなたはref string field
シグネチャを持つことを行うことができる方法はありません。属性はない「インスタンス」に、(フィールド、クラス、イベントなど)の宣言に適用されます。
は、<全角>内容のことができません、このようなあなたの方法を変更されます:
private void Do(Type fieldContainingType, string fieldName, ref string field)
、次に見ることfieldContainingType
を検査するためにリフレクションを使用して、どのような属性は、名前のfieldName
をフィールドに適用されます。このアプローチは、しかし、非常に脆弱であり、一般的に非常に悪いです。
所属していません StackOverflow