簡體   English   中英

如何使用統一DI僅將一個對象注入構造函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM