10

MetroStyleAppポータブルライブラリのクラスでカスタム属性を定義して取得しようとしています。

何かのようなもの

[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'

ありがとう

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 に答える