DLL作为对象的替代(动态可替换对象)

时间:2008-12-12 02:54:14

标签: dll dynamic object

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

假设我创建了对象“Shape~01.dll”。应用程序将使用该DLL,但在应用程序运行时无法替换它。所以,如果我想“升级”形状dll,我必须创建“Shape~02.dll”,并且每次创建一个形状和/或用户必须重新启动时,应用程序必须动态搜索并加载最新的dll。应用。它变得更糟,每个dll取决于主.exe因此必须使用主.exe重建。

是否有更简单的方法来拥有动态的“可替换”对象?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您没有提到您尝试使用哪种语言/平台,因此我将回答.NET Framework。

如果您想以严格的方式查看Shadow Assemblies,这是ASP.NET用来保持站点可更新的方法,尽管它使用的是文件。

为了更简单的方法查看新的System.Addin命名空间,这会使用阴影组件,并且应该做你想要的。

答案 2 :(得分:-1)

在创建对象时,为什么不在文件系统更改时从系统请求通知,而不是轮询?

.NET中的类是System.IO.FileSystemWatcher

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

虽然已经说过这些话,但您可能想重新考虑一下您需要经常更改对象的原因,因为要使其工作可能需要做很多工作。

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