6

私のPCLコアプロジェクト(WP8、Android、iOS、Xamarin、MvvmCross)ではカスタム属性を使用しています。 Type.GetCustomAttributes()拡張メソッドを使用して、使用される属性を調べることができます。ポータブルクラスライブラリプロファイル78属性に関連するメソッド/プロパティがありません

これはPCL Profile104を使用するとうまくいきます。しかし、私はasync/awaitを使いたいのでPCL Profile78(と.NET 4.5)を使う必要があります

問題:GetCustomAttributes()とAttributesプロパティはProfile78で利用できないようです。なぜ??

注:PCLプロファイル104クラスライブラリを作成し、GetCustomAttributes()をラップし、このライブラリをPCL Profile78ライブラリから参照することで回避策を検討しています。

public Pcl78Class() 
{ 
    Type t = this.GetType(); 
    var attributes = t.Attributes; 
    var customAttributes = t.GetCustomAttributes(true); 

    // another weird thing: Why is VS CodeCompletion telling me it knows CustomAttributeExtensions class and methods? 
    //System.Reflection.CustomAttributeExtensions.GetCustomAttributes(t); 
} 

enter image description here

+0

これはProfile7でも発生します – benhorgen

答えて

13

問題:しかし、extensionmethodsが...

サンプルコードをサポートされていないようですGetCustomAttributes()とAttributesプロパティはProfile78では利用できないようです。なぜ??

Profile78 includes support for Windows Store 8(私のブログに記載されています)、およびWindows Store has a more efficient implementation of Type-based reflectionです。本質的にはType.GetTypeInfoに電話してTypeInfoを取得する必要があります。そこからはかなり簡単です。

+0

ちょっと、System.Reflection.GetTypeInfoに切り替えましたが、常にnullが返されます。私はProfile49を試しています。助言がありますか? – skimania

+0

@skimania:これはこれとは異なる質問ですので、別の質問として投稿してください。それからもっと多くの人々がそれを見て、より良い答えを得るでしょう。 –

関連する問題