【问题标题】:StructureMap errors when using simple configuration based Constructor Injection使用基于简单配置的构造函数注入时出现 StructureMap 错误
【发布时间】:2011-12-21 11:51:26
【问题描述】:

我尝试了一个简单的程序来尝试基于配置的构造函数注入。代码如下:

using StructureMap;
namespace StructureMapConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            ObjectFactory.Initialize(x =>
                {
                    x.PullConfigurationFromAppConfig = true;
                });

            var result = ObjectFactory.GetInstance<IIConstructor>();
        }
    }

    public interface IIConstructor
    {
    }

    public class Constructor : IIConstructor
    {
        public Constructor(bool test)
        {

        }
    }
}

这是我的配置文件:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="StructureMap"
             type="StructureMap.Configuration.StructureMapConfigurationSection,StructureMap"/>
  </configSections>
  <StructureMap>
    <DefaultInstance MementoStyle="Attribute"
                     PluginType="StructureMapConfig.IIConstructor,StructureMapConfig"
                     PluggedType="StructureMapConfig.Constructor,StructureMapConfig"
                     test="false"/>
  </StructureMap>
  <startup>
    <supportedRuntime version="v4.0"
                      sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

读取配置文件时,我不断收到大量堆栈跟踪,最终导致此错误:

试图访问 System.Boolean 类型的参数测试 StructureMapConfig.Constructor、StructureMapConfig 的构造函数, 版本=1.0.0.0,文化=中性,PublicKeyToken=null ---> StructureMap.StructureMapException:StructureMap 异常代码:205 InstanceKey 缺少请求的实例属性“test” “DefaultInstanceOfStructureMapConfig.II 构造函数, StructureMapConfig,版本=1.0.0.0,文化=中性, PublicKeyToken=null

代码肯定有一个名为“test”的构造函数参数,并且目标类型是正确的 - 一个布尔值。

有人可以指导我哪里出错了吗?

--

注意:我只想将其保留在配置中,因为如果此值从“false”更改为“true”,则需要重新编译,因此无法在配置中定义它。

【问题讨论】:

    标签: c# configuration dependency-injection structuremap


    【解决方案1】:

    知道了,

    "MementoStyle" 应该在 &lt;StructureMap&gt; 元素上,而不是在 &lt;DefaultInstance&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多