2012-11-13 11 views
8

Windows 8ストアアプリケーションで特定のインターフェイスを実装するクラスの一覧を取得しようとしていますが、WinRTでは反映が非常に異なっているようですそのような良い例を見つけてください。WinRTで特定のインターフェイスを実装するすべてのクラスを取得する

誰も知っている、どのように現在のアセンブリをロードし、それを介してループですか?

すべてのヘルプははるかに高く評価される:)

+0

あなたはこれが十分に立証されているため、使用可能なクラスを知っている必要があります。 –

+0

@Ramhound私はあなたが何を求めているのかよく分かりません。私のシナリオでは100以上のルールがあり、各ルールには一意の名前があり、IRuleインターフェイスが実装されています。 IRuleインターフェイスを実装するすべてのクラスを取得したいと思います。 –

+0

あなたはこれ[スレッド](http://stackoverflow.com/questions/13373000/in-metro-get-all-inherited-classes-of-an-abstract-class)を見ましたか? 多分それはあなたを助ける 以下の答えは完璧に動作@NelsonGodinho NG –

答えて

10

は、MSDNフォーラムからの回答を得ました。他の誰かが同じことを探している場合にだけ、ここに投稿してください。

このコードはIDisposableインターフェイスを実装するすべてのクラスを取得します:

// We get the current assembly through the current class 
var currentAssembly = this.GetType().GetTypeInfo().Assembly; 

// we filter the defined classes according to the interfaces they implement 
var iDisposableAssemblies = currentAssembly.DefinedTypes.Where(type => type.ImplementedInterfaces.Any(inter => inter == typeof(IDisposable))).ToList(); 
関連する問題