あなたはおそらく独自の拡張方法を実装してそのようなことを行うことができますが、必要な機能がある場合は、単にAutofacを使用することもできます。あなたはそれに何か理由がありますか?これを行うには、ConfigureServices
(here)のように設定して戻します。
foreach (var implementationType in assemblies.SelectMany(assembly => assembly.GetTypes()).Where(type => !type.GetTypeInfo().IsAbstract))
{
foreach(var interfaceType in implementationType.GetInterfaces())
{
services.AddSingleton(interfaceType, implementationType);
}
}
コードがすべて選択されます。あなたは簡単にコードはの線に沿ってだろう...与えられたアセンブリまたはアセンブリの設定のためのすべてのアセンブリの種類を登録するには、独自のメソッドを実装することができ
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Add other framework services
// Add Autofac
var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterModule<DefaultModule>();
containerBuilder.Populate(services);
var container = containerBuilder.Build();
return new AutofacServiceProvider(container);
}
:それはビルトイン・パッケージ(Scrutor package on Nuget)そのものではないのですけれども
それは、内蔵されたIOCのコンテナに適用されます。私は非MS依存関係なしにアプリケーションを構築しようとしています。しかし、それが可能でないなら、私はオートファックと一緒に行かなければならないと思う。 – leen3o