C# 查找从反射加载的类型的基类型

C# 查找从反射加载的类型的基类型,c#,reflection,C#,Reflection,我有一个基本的场景 Assembly asm = Assembly.LoadFrom(dllPath); Type[] temp = asm.GetTypes(); bool matchFound = false; foreach (Type t in temp) { if (t.IsClass && t.IsSubClassOf(typeof(MyBaseClass))) { Console.WriteLine("Match found");

我有一个基本的场景

Assembly asm = Assembly.LoadFrom(dllPath);
Type[] temp = asm.GetTypes();
bool matchFound = false;
foreach (Type t in temp)
{
    if (t.IsClass && t.IsSubClassOf(typeof(MyBaseClass)))
    {
        Console.WriteLine("Match found");
        matchFound = true;
        break;
    }
}
在这种情况下,未找到匹配项。但如果我添加该程序集的引用并再次调用此方法

bool matchFound = typeof(MyDerivedClass).IsSubClassOf(typeof(MyBaseClass));
在这种情况下,matchfind是正确的


我想让第一个案子开始运作。通过
LoadFrom
加载的任何建议程序集都不会加载到默认程序集上下文中。这可能会导致像你这样的问题。尝试改用
Assemlby.Load
。 这里有一些链接可以获取更多有用的信息


通过
LoadFrom
加载的程序集不会加载到默认程序集上下文中。这可能会导致像你这样的问题。尝试改用
Assemlby.Load
。 这里有一些链接可以获取更多有用的信息


您的基本类型和派生类型都在正在加载/引用的程序集中定义吗?基本类型在不同的程序集中asmb1,派生类型在asmb2中定义,我从asmb3调用。:)您的基类型和派生类型是否都在正在加载/引用的程序集中定义?基类型在不同的程序集中asmb1,派生类型在asmb2中定义,我从asmb3调用。:)