0

我正在使用Type.GetType函数来获取有关类的反射信息。如果我从我的应用程序中使用该函数一切正常,但现在我需要从以前从我的应用程序加载的外部 dll 调用该函数。

如果从主应用程序调用此代码可以正常工作

Type myType1 = Type.GetType("MyNameSpace.MyType");

但如果将该代码放在 dll 中(该 dll 是从我的应用程序加载的),则会失败(myType1什么也不返回)

问题是我如何使用Type.GetType加载 dll 的 Exe 中存在的类型?

编辑 :

我认为可以重新制定哪个问题,例如如何从加载我的 dll 的程序集中加载类型?

MyEXE
  Myclass   
  MyDll (loaded by MyExe)
    Type.GetType //only get types of the MyDll assembly, how i can access the Myclass type which is defined on MyExe?
4

2 回答 2

3

在项目范围之外使用 DLL 时需要使用完全限定名称

Type myType1 = Type.GetType("MyType, MyNameSpace", true, true);

试试看

于 2012-05-22T18:46:57.257 回答
0

您还可以通过 Assembly.Load 方法加载程序集,然后枚举所有 (GetTypes()) 或从程序集中获取特定类型。看看组装类

于 2012-05-22T19:00:26.747 回答