2016-10-02 52 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 –