Metro风格应用中的自定义类属性

时间:2012-04-29 15:35:22

标签: c# windows-runtime custom-attributes system.reflection portable-class-library

我正在尝试在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'

由于

2 个答案:

答案 0 :(得分:5)

或者,过度利用扩展名:

var attr = typeof(Bar).GetTypeInfo().GetCustomAttribute<FooAttribute>();

答案 1 :(得分:2)

根据OP:

  

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

这似乎与the documentation

一致