У меня есть простой реестр 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 не определен
Спасибо, Ник
РЕДАКТИРОВАТЬ:
Решение Фредди Риоса сработало идеально для того, что мне было нужно. Мне все еще любопытно, есть ли способ сделать это, если я автоматически подключаю некоторые аргументы конструктора (следовательно, не могу использовать ConstructedBy ())