1

求助,思路如下:

External.dll
IMyClass NewCreated = (IMyClass)Activator.CreateInstance(Namespace.MyClass).UnWrap();

-----------------------------------------

Asp.Net WebSite
    App_Code
      Namespace.MyClass.cs
    Bin
      External.dll

这甚至可能吗?

我已经尝试了很多可能的组合,例如:

Assembly.GetCallingAssembly().CreateInstance("Namespace.MyClass")
Activator.CreateInstance(AppDomain.CurrentDomain,"Namespace","Namespace.MyClass")
Assembly.GetExecutingAssembly().CreateInstance("Namespace.MyClass")
4

2 回答 2

1

您可以使用BuildManager.CodeAssemblies属性列出 App_Code 目录中已编译的所有程序集名称。你也许能够以这种方式完成你所需要的。

App_Code 的问题在于,所有内容都被动态编译成一个本质上是临时的程序集。这带有一个临时程序集名称。这使得硬编码程序集名称或路径成为不可能。

于 2010-04-14T23:41:59.763 回答
0

无需使用 BuildManager.CodeAssemblies 属性来列出所有程序集名称。而是使用:

type="Namespace.MyClass, App_Code" 以引用该类。

于 2014-05-19T14:38:04.440 回答