10

我正在尝试在 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,但在针对 Metro 风格应用程序的便携式库中,它告诉我

Cannot convert type 'System.Type' to 'System.Reflection.MemberInfo'

谢谢

4

2 回答 2

5

或者,也像它们的意思一样利用扩展:

var attr = typeof(Bar).GetTypeInfo().GetCustomAttribute<FooAttribute>();
于 2015-09-19T15:01:43.487 回答
2

根据OP:

你需要做 var attrs = CustomAttributeExtensions.GetCustomAttribute(typeof(Bar).GetTypeIn‌​fo());

这似乎与文档一致

于 2012-06-09T15:36:41.777 回答