次のコードでパラメータの属性を取得するにはどうすればよいですか?
public void SomeMethod([SomeAttribute] string s)
{
var someAttribute = ?
}
そして、属性は通常、それがオンになっているメソッド内で使用するためのものではないことを認識しています...ただし、例を単純に保つだけです。
次のコードでパラメータの属性を取得するにはどうすればよいですか?
public void SomeMethod([SomeAttribute] string s)
{
var someAttribute = ?
}
そして、属性は通常、それがオンになっているメソッド内で使用するためのものではないことを認識しています...ただし、例を単純に保つだけです。
私はちょうどそれを理解しました:
var someAttribute = typeof(SomeClass).GetMethod("SomeMethod").GetParameters().First().GetCustomAttributes(false);
私は頭がおならをしていて、GetCustomAttributesメソッドの代わりにAttributesプロパティを使用していました。
まず、:が必要MethodInfo
です
var method = typeof(SomeType).GetMethod("SomeMethod");
次に、存在を確認できます。
bool hasAttrib = Attribute.IsDefined(
method.GetParameters()[0], typeof(SomeAttribute));
またはインスタンスを取得します(より高価です):
var attrib = (SomeAttribute) Attribute.GetCustomAttribute(
method.GetParameters()[0], typeof(SomeAttribute));