多数のアセンブリがあり、それぞれが Autofac.Module を拡張するクラスを使用して Autofac に依存関係を提供しています。これらのそれぞれを MEF エクスポートとして装飾しました。
[Export(typeof(IModule))]
public class ContainerModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
}
}
クライアント アプリケーションの起動の一環として、これらのモジュールをすべて集めます。次に例を示します。
var builder = new ContainerBuilder();
var path = "Path to application Bin directory";
var catalog = new DirectoryCatalog(path, "MyApp*.dll");
builder.RegisterComposablePartCatalog(catalog);
container = builder.Build();
カタログを見ると、すべてのアセンブリのすべてのモジュールが存在することがわかります。
私が持っている質問は、読み込まれた各モジュールで Load メソッドを呼び出すように Autofac に指示するにはどうすればよいかということです。
builder.RegisterAssemblyModules のいくつかの使用法を考えていますが、それをカタログに結び付ける方法についての決定的な瞬間は (まだ) ありません。
ありがとう!
r.