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

替代dll的as对象(动态可替换对象)

  •  0
  • user21826  · 技术社区  · 16 年前

    我有一个应用程序,它使用许多不同的.NET托管dll作为对象(每个dll实现一个公共接口)。每个dll在文件名中也有一个版本号。

    假设我创建对象“形状~01。dll”。应用程序将使用该DLL,但在应用程序运行时它不能被替换。因此,如果我想“升级”形状dll,我必须创建“shape~02.dll”,应用程序必须在每次创建形状和/或用户必须重新启动应用程序时动态搜索和加载最新的dll。更糟糕的是,每个dll都依赖于main.exe,因此必须用main.exe重建。

    有没有一种更简单的方法可以动态地“替换”对象?

    3 回复  |  直到 14 年前
        1
  •  0
  •   moswald Jarod42    16 年前

    嗯,这不是最好的解决方案(仍然在考虑它),但是你可以卸载DLL文件,这样可以替换它们。在你想出更好的主意之前,这可能是一个快速的权宜之计。

        2
  •  0
  •   joshperry    16 年前

    你没有提到你要用哪种语言/平台来完成这项工作,所以我将回答.NET框架的问题。

    如果你想用硬方式查看卷影程序集,这是ASP.NET用来保持站点可更新的方法,尽管它正在使用文件。

    为了更简单的方法,看看新的 System.Addin 名称空间,它在引擎盖下使用阴影程序集,并应该执行您想要的操作。

        3
  •  -1
  •   Fowl    16 年前

    与其在创建对象时进行轮询,不如在文件系统更改时请求系统通知?

    班级是 System.IO.FileSystemWatcher 在.NET中。

    对于本机代码,有几种方法可以监视文件夹,但iAnand(我不是本机开发人员;)。

    尽管说了这些,你可能想重新思考一下为什么你需要如此频繁地改变你的对象,因为这可能需要很多工作才能使它工作。

    你用了动态标签,所以也许你应该试试动态语言?:)