相关疑难解决方法(0)

使用unity解析具有多个构造函数的实例

我想使用unity创建一个类的实例,其中类有两个具有相同参数数量的构造函数.

这是实例化:

_unityContainer.Resolve<IGradeType>(new ParameterOverride("gradeTypeStringFromXmlFile", gradeTypeStringFromXmlFile));
Run Code Online (Sandbox Code Playgroud)

以下是构造函数:

    public GradeType(string gradeTypeStringFromXmlFile)
    {
        _gradeTypeStringFromXmlFile = gradeTypeStringFromXmlFile;
    }

    public GradeType(Enum.GradeType gradeType)
    {
        _gradeType = gradeType;
    }
Run Code Online (Sandbox Code Playgroud)

如果我尝试这样做,我得到一个例外,说明 类型GradeType有多个长度为1的构造函数.无法消除歧义.

我可以在一个构造函数上设置属性[InjectionConstructor]以使其与一个一起工作,但是我不能使用另一个构造函数创建一个具有单元的实例.

是否有一些方法让多个构造函数具有相同数量的参数并仍然使用unity来创建实例?

c# ioc-container unity-container

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

ioc-container ×1

unity-container ×1