0

好的,我被一个看似微不足道的功能难住了。

如何让 StructureMap 使用 XML 配置初始化从容器中检索到的类型实例的属性(不幸的是我必须使用 XML)?

我目前的代码是:

类型和接口:

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>
4

1 回答 1

1

这看起来像是 StructureMap 的打字问题。使用 int、float 或 double 可以工作。使用小数不会。

解决方法是使用另一种浮点类型,例如 float 或 double。

于 2010-07-08T15:52:47.083 回答