1

私はプラグインシステムを書いています:すべてのプラグインはautofacによってロードされなければならない彼自身のアセンブリにあり、プラグインのタイプを設定するパラメータを持つ属性によって署名されています。asp.net mvcアプリでプラグインをタイプ別に解決できますが、どうすればよいですか?すべてのプラグインは抽象クラスによって継承され、事前定義されたメソッドをオーバーライドします。

4

3 に答える 3

2

RegisterAssemblyTypes()おそらくあなたが求めている出発点です:

Assembly[] assembliesWithPlugins = // find these somehow
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assembliesWithPlugins)
    .AssignableTo<MyAbstractPluginType>()
    .WithMetadata(t => GetPluinTypeFromMyAttribute(t));

この方法でプラグインを登録すると、Autofac のメタデータ サポートによりプラグインを使用できるようになります ( http://code.google.com/p/autofac/wiki/Metadata )。後の質問のいくつかから、あなたはすでにこの道を進んでいると思います。

頑張ってください。ニック

于 2010-11-05T01:30:09.153 に答える
0

個人的には、これにはMEFを使用し、 Autofac の MEF 統合を使用します。

于 2010-10-30T22:00:43.260 に答える
0

すべてのプラグイン アセンブリで Autofac.Module を作成します。そこにプラグインを登録し、メイン アプリケーションからプラグイン dll をロードし、モジュールを探して、コンテナーに登録します。次に、解決して楽しんでください;)。

于 2010-10-30T22:05:52.680 に答える