あたりのシングルトンを取得します。各IServiceは、それぞれが依存関係を使用するいくつかのマネージャを使用します。私はサービスで(つまり、各サービスにマネージャーが共有しているDependancyのシングルトンを持っている)すべてのマネージャーに依存関係のシングルトンを持たせたいと思っています。私はHeirarchialLifeTimeManagerに登録された依存関係を持っています。依存関係の独自のシングルトンを得るように各IServiceを作成または登録するにはどうすればよいですか?UnityContainerは、私は、各登録IServiceのために同時に実行する複数のタスクを起動するWindowsサービスを持っているサービス
var _container = new UnityContainer();
_container.RegisterType<Dependency>(new HierarchicalLifetimeManager());
_container.RegisterType<MgrA1>();
_container.RegisterType<MgrA2>();
_container.RegisterType<MgrB1>();
_container.RegisterType<MgrB2>();
_container.RegisterType<IService, SvcA>("A");
_container.RegisterType<IService, SvcB>("B");
var services = _container.Resolve<IService[]>()
foreach(var svc in services)
{
Task.Factory.StartNew(() => svc.Start());
}
// dependencies (via constructors)
SvcA(MgrA1, MgrA2)
SvcB(MgrB1, MgrB2)
MgrA1(Dependency)
MgrA2(Dependency)
MgrB1(Dependency)
MgrB2(Dependency)
私は2つの依存関係のインスタンス、SVCAとその経営者のための1、およびSvcBとその経営者のための1つを取得したいです。 .CreateChildContainer()を使用して独自の子コンテナに各サービスを登録しようとしましたが、親コンテナで呼び出されたときに解決されず、すべてのサービスが取得されて開始されます。