在位于Asp.Net App_Code中的int类中调用Activator.CreateInstance

时间:2010-04-14 23:33:44

标签: c# asp.net assemblies activator createinstance

帮助,这是一个想法:

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

2 个答案:

答案 0 :(得分:1)

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

App_Code的问题在于,所有内容都会动态编译到一个本质上是临时的程序集中。这附带一个临时的程序集名称。这使得无法对程序集名称或路径进行硬编码。

答案 1 :(得分:0)

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

type =" Namespace.MyClass,App_Code"参考课程。