【问题标题】:Unity inject complex constructor object in app.configUnity 在 app.config 中注入复杂的构造函数对象
【发布时间】:2014-02-06 21:28:15
【问题描述】:

我有一个 MyProvider 类,它接受一个设置对象作为构造函数参数。有谁知道 Unity 是否支持通过 app.config 配置将复杂对象作为参数传递?

这是我迄今为止尝试过的(没有用)

<register type="IProvider" mapTo="MyProvider">
    <constructor>
        <param name="settings">
            <value>
         <MyProviderSettings>
             <UserId>YYYYYYYY</UserId>
             <Password>XXXXXX</Password>
             <OtherPropery>ZZZZZZZ</OtherPropery>
         </MyProviderSettings>
        </value>
        </param>

我收到错误“无效元素 MyProviderSettings”

【问题讨论】:

    标签: c# dependency-injection unity-container app-config


    【解决方案1】:

    根据文档,您为此定义了一个自定义类型转换器。类型转换器会将字符串值转换为任何类型的任何值。

    <constructor>
    <param name="param1">
        <value value="42" />
    </param>
    <param name="param2">
        <value value="aieou" typeConverter="VowelTypeConverter" />
    </param>
    </constructor>
    

    http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx#config_value

    http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx

    【讨论】:

    • 感谢您的回复,维克托。如果我想继续使用某种形式的 XML 来定义传递的对象,我需要编写一个使用 XmlSerializer 的转换器。然后我会使用这样的东西:
    • 恐怕没有其他解决方案,或者至少我没有想到其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多