3

给定

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 与非字符串参数一起使用?

4

1 回答 1

2

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

      ForRequestedType<IBlah>()
        .TheDefault.Is.OfConcreteType<Blah>()
        .WithCtorArg("blah")
        .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));
于 2009-06-17T17:20:18.490 回答