Pergunta

Dada

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

Quando

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

Em seguida, StructureMap lança a seguinte exceção

No Default Instance defined for PluginFamily System.Decimal

Existe alguma maneira de usar o EqualToAppSetting com argumentos não-string?

Foi útil?

Solução

Eu não acho que você pode fazer isso com o método EqualToAppSetting. Você poderia não apenas referência System.Configuration e lançou o ajuste você mesmo aplicativo? Assim ...

      ForRequestedType<IBlah>()
        .TheDefault.Is.OfConcreteType<Blah>()
        .WithCtorArg("blah")
        .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top