2009-06-16 5 views
3

GegebenStructureMap: EqualToAppSetting mit nicht Zeichenfolgenkonstruktor Argument

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

Wenn

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

Dann StructureMap die folgende Ausnahme wirft

No Default Instance defined for PluginFamily System.Decimal 

Gibt es eine Möglichkeit, die EqualToAppSetting mit nicht zu verwenden, -string Argumente?

Antwort

2

Ich glaube nicht, dass Sie dies mit der EqualToAppSetting-Methode tun können. Könnten Sie nicht einfach auf System.Configuration verweisen und die App-Einstellungen selbst umsetzen? So ...

 ForRequestedType<IBlah>() 
     .TheDefault.Is.OfConcreteType<Blah>() 
     .WithCtorArg("blah") 
     .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));