2 回答
TA贡献1862条经验 获得超6个赞
您需要GetCustomAttributes在MethodBase对象上调用该函数。
获取MethodBase对象的最简单方法是调用MethodBase.GetCurrentMethod。(请注意,您应该添加[MethodImpl(MethodImplOptions.NoInlining)])
例如:
MethodBase method = MethodBase.GetCurrentMethod();
MyAttribute attr = (MyAttribute)method.GetCustomAttributes(typeof(MyAttribute), true)[0] ;
string value = attr.Value; //Assumes that MyAttribute has a property called Value
您也可以MethodBase手动获取,例如:(这样会更快)
MethodBase method = typeof(MyClass).GetMethod("MyMethod");
TA贡献1911条经验 获得超7个赞
可用的答案大多已过时。
这是当前的最佳做法:
class MyClass
{
[MyAttribute("Hello World")]
public void MyMethod()
{
var method = typeof(MyClass).GetRuntimeMethod(nameof(MyClass.MyMethod), new Type[]{});
var attribute = method.GetCustomAttribute<MyAttribute>();
}
}
这不需要铸造,使用起来非常安全。
您还可以.GetCustomAttributes<T>用来获取一种类型的所有属性。
- 2 回答
- 0 关注
- 499 浏览
添加回答
举报