1

新しいアプリ ドメインでのプラグインの読み込みに関するスレッドがたくさんあることは知っています。以前にそれらを読んでいなかった私のせい..私はこの学校のプロジェクト - プラグインベースのアプリを持っています。1 つの重要な点を除いて - プラグインは新しいドメインにロードする必要があります。この記事を使用してプラグイン ベースのアプリを作成します

私は現在、プロジェクトの締め切りを迫られており、同じアプリケーション ドメインのプラグインで立ち往生しています。リンク内のアプリケーションに簡単な変更を加えて、別のアプリ ドメインにプラグインをロードすることが可能かどうかアドバイスをいただけますか? 私は最初からアプリを書くことは本当にありません。:(

アドバイスありがとうございます。

4

3 に答える 3

2

これを試して

AppDomain domain = AppDomain.CreateDomain("domain name");

// TODO: configure appdomain as needed

// to load the dll and get a type you can reference in your current appdomain
string pathToDll = @"C:\somedir\Mydll.dll";
Type myType = typeof(SomeType);
SomeType myObj = (SomeType)domain.CreateInstanceFromAndUnwrap(pathToDll, myType.FullName);


// to just load the dll into the new appdomain
byte[] file = File.ReadAllBytes(pathToDll);
domain.Load(file);
于 2012-04-24T13:52:11.527 に答える
1

以前、WinForms アプリケーションを個別の AppDomains に分割しようとしましたが、まったく簡単ではありませんでした。ただし、あなたの場合はそれほど難しくありません。

新しい AppDomain を作成し、そこにプラグイン タイプをロードしてみてください。次に、リフレクションまたは共通の基本インターフェイスを使用してそのオブジェクトと通信します (プラグイン アセンブリをホスト AppDomain に読み込まないようにする場合は、ホスト アプリケーションでプラグインの種類を参照できないことに注意してください)。

System.AddIn 名前空間も参照してください。これは、プラグインの開発を容易にするために特別に実装されたものです。

于 2012-04-24T13:35:22.767 に答える
0

System.Addin を使用できます。このサンプル (またはこの CodePlex ページの他のサンプル) を見てください。

http://clraddins.codeplex.com/releases/view/9454

于 2012-04-24T13:41:01.317 に答える