帮助,这是一个想法:
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")
答案 0 :(得分:1)
您可以使用BuildManager.CodeAssemblies属性列出已在App_Code目录中编译的所有程序集名称。你或许可以用这种方式完成你需要的东西。
App_Code的问题在于,所有内容都会动态编译到一个本质上是临时的程序集中。这附带一个临时的程序集名称。这使得无法对程序集名称或路径进行硬编码。
答案 1 :(得分:0)
无需使用BuildManager.CodeAssemblies属性列出所有程序集名称。而是使用:
type =" Namespace.MyClass,App_Code"参考课程。