正在查找从反射加载的类型的基类型

本文关键字:类型 基类 加载 反射 查找 | 更新日期: 2023-09-27 17:57:28

我有一个基本的场景。

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));

matchFound在这种情况下为true。

我希望第一个案子继续审理。任何建议

正在查找从反射加载的类型的基类型

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

http://gotoanswer.com/?q=Loading+a+类+来自+an+组件+动态+%28C%23%29

反射在使用assembly.LoadFrom 加载的程序集上不起作用

https://msdn.microsoft.com/en-us/library/ms172214.aspx

http://geekswithblogs.net/rupreet/archive/2010/02/16/137988.aspx