代码之家  ›  专栏  ›  技术社区  ›  Fraga

调用dll中的activator.createInstance以维护驻留在ASP.NET应用程序代码中的类

  •  1
  • Fraga  · 技术社区  · 16 年前

    救命,这是个主意:

    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 回复  |  直到 12 年前
        1
  •  1
  •   womp    16 年前

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

    app_代码的问题是,所有东西都被动态编译成一个程序集,这个程序集本质上是临时的。这与临时程序集名称一起提供。这使得无法硬编码程序集名称或路径。

        2
  •  0
  •   user3653086    12 年前

    不需要使用buildmanager.codeassemblies属性来列出所有程序集名称。取而代之的是:

    type=“namespace.myClass,app_code”引用该类。

    推荐文章