Можно ли сделать единство попробовать все определенные конструкторы, начиная с одного с большинством аргументов до наименее специфического (конструктор по умолчанию)?Единство и конструкторы
Редактировать
Что я имею в виду:
foreach (var constructor in concrete.GetConstructorsOrderByParameterCount())
{
if(CanFulfilDependencies(constructor))
{
UseConstructor(constructor);
break;
}
}
Я не хочу единства только попробовать конструктор большинства параметров. Я хочу, чтобы он продолжал попытки, пока не найдет подходящий конструктор. Если Unity не предоставляет такое поведение по умолчанию, возможно ли создать расширение или что-то, что можно сделать?
Edit 2
Я получил класс с двумя конструкторами:
public class MyConcrete : ISomeInterface
{
public MyConcrete (IDepend1 dep, IDepend2 dep2)
{}
public MyConcrete(IDepend1 dep)
{}
}
класс в библиотеке, которая используется несколькими проектами существует. В этом проекте я хочу использовать второй конструктор. Но Unity останавливается, так как он не может выполнить зависимости первым конструктором. И я не хочу изменить класс, так как первый конструктор используется DI в других проектах.
Следовательно, необходимо, чтобы Unity попыталась разрешить все конструкторы.
Что именно вы подразумеваете под «попыткой»? – 2010-12-02 14:53:48
Снова ... вы говорите «подходящий» ... просьба указать код, в котором эта проблема всплывает, поскольку это может сделать вещи более ясными. Конструкторы не должны вообще зависеть от внешних объектов вне того, что передается, не должны выбрасывать исключения и т. Д. ... Редактировал мой ответ, однако ... – 2010-12-02 15:21:57