1


3

Autofac-プラグインをタイプ別に登録する

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

3 Answer


2


「RegisterAssemblyTypes()」は、おそらく次の出発点です。

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

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

頑張ってください。 Nick


0


個人的には、このためにhttp://mef.codeplex.com/[MEF]を使用し、http://code.google.com/p/autofac/wiki/MefIntegration [AutofacのMEF統合]を使用します。


0


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