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