Pregunta

Dado

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

Cuándo

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

Luego, StructureMap lanza la siguiente excepción

No Default Instance defined for PluginFamily System.Decimal

¿Hay alguna forma de usar EqualToAppSetting con argumentos que no sean de cadena?

¿Fue útil?

Solución

No creo que pueda hacer esto con el método EqualToAppSetting. ¿No podría simplemente hacer referencia a System.Configuration y convertir la configuración de la aplicación usted mismo? Me gusta esto ...

      ForRequestedType<IBlah>()
        .TheDefault.Is.OfConcreteType<Blah>()
        .WithCtorArg("blah")
        .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top