4

私は、サードパーティの開発者がプラグインを作成できるアプリケーションに取り組んでいます。Managed Extensibility Framework について少し調べてみましたが、これが正しい方法のようです。

ただし、プラグインがアプリケーションの残りの部分に自由にアクセスできないようにしたい (シングルトンなどを呼び出す) が、いくつかのインターフェイスを介して通信するように制限したい場合、理想的には、各プラグインが他のアクセスなどのさまざまなことに対して許可を "要求" する必要があります。プラグインとユーザーデータ、これを達成する良い方法はありますか?

そうでなければ私が考えることができる唯一のことは、セキュリティ文字列を各メソッドに渡し、コードから地獄を難読化することですが、それは醜い解決策のように思えます:P

4

1 に答える 1

4

必要なのは、AppDomainプラグインのサンドボックスになるための新しいものですが、現時点では、MEF がエクスポートを個別にロードすることをサポートしているとは思いませんAppDomain(これがもはや当てはまらない場合は、誰かが私を修正してくれると確信しています)。

これが深刻な懸念事項である場合は、System.Addin名前空間でビットを使用することを検討してください。詳細については、アクティブ化、分離、セキュリティ、およびサンドボックス化に関するこのセクションを参照してください。これは、MEF よりもはるかに堅牢で安全な代替手段ですが、柔軟性ははるかに劣ります。

更新: Kent Boogaart は、MEF と MAF を一緒に使用する方法を示すブログ投稿を行っています。

于 2009-12-12T13:28:16.493 に答える