[英]C# Generics Exception, using Generics on Interface failing at Autofac.ContainerBuilder.Build()
[英]Is Autofac ContainerBuilder.Build an expensive operation?
我开始使用Autofac,我似乎无法找到这个问题的答案。
另外,我什么时候应该调用ContainerBuilder.Build()?
我调用ContainerBuilder.Build()之后是否可以注册另一个类型或实例?
我不能告诉你Build方法是否昂贵,但是如果你遵循Register Resolve Release模式,那就无所谓了,因为每个应用程序只应该有一个容器实例 。
您需要调用Build方法一次才能获得容器实例,因此无论它有多贵(或不是), 这都是您必须支付的成本 。 但是,当您只使用容器的单个实例时,您只需支付一次该费用 。
在实际开始调用业务行为之前,通常应在应用程序启动期间调用ContainerBuilder.Build()。
如果需要将其他组件注册到现有容器中,则可以。 要在Autofac v2.2(或更高版本)中执行此操作,您可以创建另一个ContainerBuilder实例并使用ContainerBuilder.Build(IContainer)重载方法。
ContainerBuilder _AutoFacContainerBuilder;
IContainer _AutoFacContainer;
_AutoFacContainerBuilder.RegisterType<MyClass>().Named<IMyClass>("MyNameOne");
_AutoFacContainer = AutoFacContainerBuilder.Build();
ContainerBuilder _AnotherBuilder;
_AnotherBuilder.RegisterType<MyClassTwo>().Named<IMyClassTwo>("MyNameTwo");
_AnotherBuilder.Update(_AutoFacContainer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.