我正在尝试在Metro Style App便携式库中的类上定义和检索自定义属性。
像
这样的东西[AttributeUsage(AttributeTargets.Class)]
public class FooAttribute : Attribute
{
}
[Foo]
public class Bar
{
}
class Program
{
static void Main(string[] args)
{
var attrs = CustomAttributeExtensions.GetCustomAttribute<FooAttribute>(typeof(Bar));
}
}
这适用于普通的4.5,但是在一个便携式图书馆中,它针对地铁风格的应用程序,它告诉我
Cannot convert type 'System.Type' to 'System.Reflection.MemberInfo'
由于
答案 0 :(得分:5)
或者,过度利用扩展名:
var attr = typeof(Bar).GetTypeInfo().GetCustomAttribute<FooAttribute>();
答案 1 :(得分:2)
根据OP:
一致你需要做var attrs = CustomAttributeExtensions.GetCustomAttribute(typeof(Bar).GetTypeIn fo());