DryIOC 非惰性解析
DryIOC Non-lazy resolution
如何在 DryIOC 中禁用延迟解析?我需要立即实例化我的一些单身人士。
目前我正在执行所有注册调用,然后为我需要在开始时实例化的那些调用另一个解析调用块。但是有点笨重。
您可以使用特定元数据标记注册,比方说使用 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()
.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));
如何在 DryIOC 中禁用延迟解析?我需要立即实例化我的一些单身人士。
目前我正在执行所有注册调用,然后为我需要在开始时实例化的那些调用另一个解析调用块。但是有点笨重。
您可以使用特定元数据标记注册,比方说使用 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()
.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));