2016-10-02 7 views
0

現在、C#でUWPを使用しているAPPを開発中です。私はリフレクションを使用して利用可能なクラスを発見し、どのクラスを使用するかを動的に選択させたいと思っていました。 UWP Reflectionは他のC#アプリケーションとまったく同じように動作しないようです。だから私は動作するコードを見つけることができません。特定のクラスを拡張するクラスがあるかどうかを調べる必要があります。C#UWP Reflection指定されたクラスを拡張するすべてのクラスを取得します。

誰かが正しい方向に向けることができますか? .NETのコアで

+0

重複:http://stackoverflow.com/questions/8928464/for-an-object-can-i-get-all-its-サブクラスを使用したリフレクションまたはその他の方法 – aaalex88

+0

@ aaalex88 uwpは.NET Coreを使用しており、リフレクションでいくつかAPIが変更されているため、重複しません。 https://blogs.msdn.microsoft.com/dotnet/2012/08/28 /進化する反射api/ –

答えて

1
using System.Reflection; 

List<Type> derivedClassList = typeof(MyClass).GetTypeInfo().Assembly.GetTypes().Where(type => type.IsInstanceOfType(typeof(MyClass))).ToList(); 

リフレクションAPIの変更: https://blogs.msdn.microsoft.com/dotnet/2012/08/28/evolving-the-reflection-api/

+0

ありがとう!それは確かに動作するものです。しかし、それは基本クラスがそれを継承するクラスと同じアセンブリにないので、私の問題を解決しません。どのように私はすべてのアセンブリを得ることができますか? –

+0

私はUWPにはクリーンな方法はないと思いますが、すべての.dllをインストールディレクトリから検索することができます: http://stackoverflow.com/a/38120023/5081328 –

関連する問題