[英]How to inject only one object to constructor using unity DI
如何使用Unity DI僅將一個對象注入構造函數。 例:
public class MyClass{
public MyClass(ILog logger, IProvider provider, IResolver resolver, ItemTypeEnum itemType)
{
//.... initializing everything
}
public ItemTypeEnum ItemType { get; set;}
//....methods where I will use this itemKind
}
我只想將itemType值注入構造函數,以便在實現中使用此itemType取決於此枚舉的值。
免責聲明:我可能把這個問題弄錯了,但是對我來說,注入所有依賴itemType
( 除了 itemType
是有意義的,而不是相反。
最簡單的選擇是使用CreateMyClass( ItemTypeEnum itemType )
方法創建MyClassFactory
。 詳細信息在那邊 ...
您可以使用InjectionConstructor
並在解析過程中提供參數。 示例如下:
container.RegisterType<ILog, Log>();
container.RegisterType<IResolver, Resolver>();
container.RegisterType<IProvider, Provider>();
container.RegisterType<MyClass>(new InjectionConstructor(
new ResolvedParameter<ILog>(),
new ResolvedParameter<IProvider>(),
new ResolvedParameter<IResolver>(),
typeof(ItemTypeEnum)));
MyClass mc = container.Resolve<MyClass>(new ParameterOverride("itemType", ItemTypeEnum.Value));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.