Разрешить экземпляр с несколькими конструкторами с использованием единства

Я хотел бы создать экземпляр класса, используя единство, где у класса есть два конструктора с одинаковым количеством параметров.

Вот создание экземпляра:

_unityContainer.Resolve<IGradeType>(new ParameterOverride("gradeTypeStringFromXmlFile", gradeTypeStringFromXmlFile));

И вот конструкторы:

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

    public GradeType(Enum.GradeType gradeType)
    {
        _gradeType = gradeType;
    }

Если я попытаюсь сделать это, я получу исключение: Тип GradeType имеет несколько конструкторов длины 1. Невозможно устранить неоднозначность .

Я могу установите атрибут [InjectionConstructor] для одного конструктора, чтобы он работал с одним, но тогда я не могу создать экземпляр с единством, используя другой конструктор.

Это какой-то способ иметь несколько конструкторов с равным количеством параметров и все же использовать единство для создания экземпляров?

19
задан Kirill Kobelev 10 February 2018 в 03:00
поделиться