![](/img/trans.png)
[英]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.