0

多くの異なる .NET マネージド DLL をオブジェクトとして使用するアプリケーションがあります (各 DLL は共通のインターフェイスを実装しています)。各 DLL には、ファイル名にバージョン番号も含まれています。

「Shape~01.dll」というオブジェクトを作成したとします。アプリケーションはその DLL を使用しますが、アプリケーションの実行中に置き換えることはできません。そのため、シェイプ dll を「アップグレード」したい場合は、「Shape~02.dll」を作成する必要があり、アプリケーションは、シェイプが作成されるたびに最新の dll を動的に検索してロードする必要があり、ユーザーがシェイプを再起動する必要があります。応用。さらに悪いことに、各 dll はメインの .exe に依存するため、メインの .exe で再構築する必要があります。

動的に「置換可能な」オブジェクトを作成する簡単な方法はありますか?

4

3 に答える 3

0

まあ、これは最善の解決策ではありませんが (まだ考え中です)、dll ファイルをアンロードして置き換えることができます。より良いアイデアが思いつくまで、それは応急処置かもしれません。

于 2008-12-12T02:57:10.423 に答える
0

これを達成しようとしている言語/プラットフォームについて言及していないので、.NET Frameworkについて回答します。

難しい方法でそれを行いたい場合は、Shadow Assemblies を見てください。これは、ASP.NET がファイルを使用しているにもかかわらず、サイトを更新可能に保つために使用する方法です。

はるかに簡単な方法として、新しいSystem.Addin名前空間を見てください。これは内部でシャドウ アセンブリを使用しており、必要なことを行う必要があります。

于 2008-12-12T03:12:15.150 に答える
-1

オブジェクトを作成するときにポーリングする代わりに、ファイル システムが変更されたときにシステムからの通知を要求しないのはなぜですか?

クラスは、.NET のSystem.IO.FileSystemWatcherです。

ネイティブ コードの場合、フォルダーを監視する方法はいくつかありますが、IANAND (私はネイティブ開発者ではありません;)。

これらのことを言いましたが、オブジェクトを頻繁に変更する必要がある理由を再考したいと思うでしょう。それを機能させるにはおそらく多くの作業が必要になるからです。

動的タグを使用したので、動的言語を試してみてください。:)

于 2008-12-12T03:13:00.763 に答える