如何使用XML配置(不幸的是我必须使用XML)让StructureMap初始化从容器中检索到的类型实例的属性?
我目前的代码是:
类型和界面:
public interface IMyType
{
decimal MyProperty { get; set; }
}
public MyType : IMyType
{
public decimal MyProperty {get; set; }
}
容器初始化和实例检索代码:
ObjectFactory
.Initialize(x => x.AddConfigurationFromXmlFile(@"StructureMap.config"));
IMyType instance = ObjectFactory.GetNamedInstance<IMyType>("Blah");
var myPropertyValue = instance.MyProperty; //expected 1, is actually 0
XML配置:
<?xml version="1.0" encoding="utf-8" ?>
<StructureMap MementoStyle="Attribute">
<AddInstance
PluginType="MyNamespace.IMyType, MyAssemblyName"
PluggedType="MyNamespace.MyType, MyAssemblyName"
Key="Blah"
Name="Blah
MyProperty="1" />
</StructureMap>
答案 0 :(得分:1)
这看起来像是StructureMap的输入问题。使用int,float或double工作。使用小数不会。
解决方法是使用其他浮点类型,例如float或double。