开发者

Type not being instantiated correctly by StructureMap (using XML configuration)

开发者 https://www.devze.com 2023-01-06 16:01 出处:网络
OK, I\'m stumped over a seemingly trivial piece of functionality. How can I get StructureMap to initialize the properties on type instances retrieved from the container, using XML configuration (unfo

OK, I'm stumped over a seemingly trivial piece of functionality.

How can I get StructureMap to initialize the properties on type instances retrieved from the container, using XML configuration (unfortunately I have to use XML)?

My current code is:

The type and interface:

public interface IMyType
{
  decimal MyProperty { get; set; }
}

public MyType : IMyType
{
  public decimal MyProperty {get; set; }
}

The container initialization and instance retrieval code:

ObjectFactory
  .Initialize(x => x.AddConfigurationFromXmlFile(@"StructureMap.config"));
IMyType instance = ObjectFactory.GetNamedInstance<IMyType>("Blah"); 
var myPropertyValue = instance.MyProperty; //expected 1, is actually 0

XML Configuration:

<?xml version="1.0" encoding="utf-8" ?>
<StructureMap MementoStyle="Attribute">  
  <AddInstance
    PluginType="MyNamespace.IMyType, MyAssemblyName"
    PluggedType="MyNamespace.MyType, MyAssemblyName"
    Key="Blah"
    Name="Blah
    MyPropert开发者_开发百科y="1" />
</StructureMap>


This looks like a typing issue with StructureMap. Using an int, float or double works. Using a decimal does not.

Workaround is to use another floating point type such as float or double.

0

精彩评论

暂无评论...
验证码 换一张
取 消