У меня есть простой реестр SM, где я настраиваю все свои экземпляры IDynamicValue. У меня есть несколько аргументов конструктора, которые не являются примитивными типами (в моем случае это DateTime и Predicate Of T). Есть ли способ, которым я могу внедрить их без необходимости заключать их в класс с интерфейсом (чтобы они могли быть автоматически подключены). Следующий фрагмент кода показывает, чего я хотел бы достичь:
ForRequestedType<IDynamicValue>().AddInstances(x =>
{
x.OfConcreteType<DateTimeGenerator>().WithName("DateTime")
.WithCtorArg("keyName").EqualTo("DateTime")
.WithCtorArg("startDate").EqualTo(DateTime.Now.AddMonths(-1))
.WithCtorArg("minuteIntervalDelta").EqualTo(60);
});
Этот пример выполняется, но завершается ошибкой, за исключением:
Код исключения StructureMap: 202
Не определен экземпляр по умолчанию для PluginFamily System.DateTime
Спасибо,
Nic
EDIT:
Решение Фредди Риоса отлично подошло для того, что мне было нужно. Мне все еще любопытно, есть ли способ сделать это, если бы я автоматически связывал некоторые аргументы конструктора (следовательно, не мог использовать ConstructedBy ())