StructureMap:具有非字符串构造函数参数的EqualToAppSetting

时间:2009-06-16 09:14:50

标签: inversion-of-control structuremap

鉴于

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 个答案:

答案 0 :(得分:2)

我认为你不能用EqualToAppSetting方法做到这一点。您是否可以自己引用System.Configuration并自行投射应用设置?像这样......

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