23

単純なアプリケーションをWindows8Metro(WinRT)に移植しようとしています。いくつかの非常に基本的な方法が欠けているようです。1つの基本的な例:Type.GetProperty()。これは、Windows Phone 7、Silverlight、および.NETクライアントプロファイルで使用できます。何か(特別なライブラリなど)をインストールする必要がありますか、それともこの方法は.NETメトロプロファイルでは利用できませんか?

アップデート

OK、ありがとう。今私はを使用しますthis.GetType().GetTypeInfo().DeclaredProperties

using System.Reflection;GetTypeInfo()この拡張メソッドを使用するには、が必要です。

4

2 に答える 2

24

Metroではリフレクションが少し変更されました。MSDNを参照してください(「リフレクションの変更」-下部近く)。

基本的に、次のものが必要ですtype.GetTypeInfo()

于 2011-10-22T09:55:00.577 に答える
12

Nicholas Butlerの応答に加えて、私はこの種の拡張機能を使用して、すべてのプラットフォームで再利用可能なコードを維持することになりました。

#if NETFX_CORE // Workaround for .Net for Windows Store not having Type.GetProperty method
    public static class GetPropertyHelper
    {
        public static PropertyInfo GetProperty(this Type type, string propertyName)
        {
            return type.GetTypeInfo().GetDeclaredProperty(propertyName);
        }
    }
#endif

このようにType.GetProperty()して、すべてのプラットフォームに実装されます。

于 2013-07-03T12:44:52.600 に答える