StructureMap: EqualToAppSetting с аргументом нестрокового конструктора

Дано

public class Blah : IBlah 
{
    public Blah(decimal argument)
    {
    }
}

когда

ForRequestedType<IBlah>()
    .TheDefault.Is.OfConcreteType<Blah>()
    .WithCtorArg("argument")
    .EqualToAppSetting("argument_app_setting_key")

Затем StructureMap выдает следующее исключение

No Default Instance defined for PluginFamily System.Decimal

Есть ли способ использовать EqualToAppSetting с нестроковыми аргументами?

1 ответ

Решение

Я не думаю, что вы можете сделать это с помощью метода EqualToAppSetting. Не могли бы вы просто сослаться на System.Configuration и самостоятельно настроить параметры приложения? Как это...

      ForRequestedType<IBlah>()
        .TheDefault.Is.OfConcreteType<Blah>()
        .WithCtorArg("blah")
        .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));
Другие вопросы по тегам