2016-10-02 49 views
0

我目前正在C#中使用UWP開發一個APP。我想使用反射來發現可用的類並動態地讓用戶選擇使用哪一個。似乎UWP Reflection與其他C#應用程序的工作方式不同。所以我找不到可用的代碼。我需要發現哪些類可用於擴展特定的類。C#UWP反射獲取所有擴展指定類的類

有人能指點我正確的方向嗎?

+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/evolving-the-reflection-api/ –

回答

1
using System.Reflection; 

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

在.NET核心映像API的變化: https://blogs.msdn.microsoft.com/dotnet/2012/08/28/evolving-the-reflection-api/

+0

謝謝!這確實是有效的。但是這並沒有解決我的問題,因爲基類與擴展它的類不在同一個程序集上。你知道如何獲得所有程序集嗎? –

+0

我認爲在UWP中沒有乾淨的方法,但是您可以從安裝目錄中搜索所有.dll文件: http://stackoverflow.com/a/38120023/5081328 –