1
DryIOCでレイジー解像度を無効にする方法はありますか?私は、私のシングルトンのいくつかを即座にインスタンス化する必要があります。DryIOCノンレイジー解像度
現時点で私はすべての登録呼び出しを行っており、最初にインスタンス化する必要がある解決呼び出しのブロックがもう1つあります。しかし、それはちょっと難しいです。
DryIOCでレイジー解像度を無効にする方法はありますか?私は、私のシングルトンのいくつかを即座にインスタンス化する必要があります。DryIOCノンレイジー解像度
現時点で私はすべての登録呼び出しを行っており、最初にインスタンス化する必要がある解決呼び出しのブロックがもう1つあります。しかし、それはちょっと難しいです。
public enum AutoActivate { It }
と言うと、登録に特定のメタデータをマークすることができます。次に、マークされた登録を発見して、それらを好ましい時間に解決する:
var container = new Container();
container.Register<IFoo, Foo>(Reuse.Singleton, setup: Setup.With(AutoActivate.It));
container.Register<IBar, Bar>(Reuse.Singleton); // don't activate
// when suitable
var activatedServices = container.GetServiceRegistrations() l
.Where(r => r.Factory.Setup.Metadata is AutoActivate)
.OrderBy(r => r.FactoryRegistrationOrder)
.GroupBy(r => r.FactoryRegistrationOrder, (f, r) => r.First())
.Select(r => container.Resolve(r.ServiceType, r.OptionalServiceKey));
直ちに?シングルトンを登録するときは?それから、その前にすべての依存関係を利用できるようにする必要があります。 – dadhi