IoCContainer
Inversion of Control Container
コンストラクタインジェクションなどで依存性注入を行っている場合,インスタンスの生成のたびに依存性注入に用いるインスタンスを生成する必要があるが,あるinterfaceに対応する具体クラスを保持し,インスタンスの生成も請け負うことで内部で依存関係の解決を行うもの.
code:IoCContainer.cs
var serviceCollection = new ServiceCollection();
serviceCollection.AddTransient<IUserRepository, InMemoryUserRepository>();
serviceCollection.AddTransient<UserApplicationService>();
var provider = serviceCollection.BuildServiceProvider();
var userApplicationService = provider.GetServide<UserApplicationService>();
ServiceLocatorなどで現れる問題を解決する.
C#であればServiceCollectionが提供されている.