加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过XML配置统一字典

发布时间:2020-12-16 23:21:29 所属栏目:百科 来源:网络整理
导读:如何使用Unity容器通过 XML配置字典? 这有效: register type="System.Collections.Generic.Dictionary[string,int]" constructor param name="capacity" value value="10" / /param/constructor/register 但我需要能够在XML配置中添加元素. 解决方法 我相
如何使用Unity容器通过 XML配置字典?
这有效:

<register type="System.Collections.Generic.Dictionary[string,int]" >
<constructor>
    <param name="capacity">
    <value value="10" />
    </param>
</constructor>
</register>

但我需要能够在XML配置中添加元素.

解决方法

我相信您发布的配置存在一些问题:

>看起来你正在尝试register an instance而不是register a type mapping.要做到这一点,你需要使用实例元素而不是寄存器元素.
>用于指定泛型类型的语法不正确.要指定字典< string,int>正确的语法应该是:

type =“System.Collections.Generic.Dictionary`2 [[System.String,mscorlib],[System.Int32,mscorlib]],mscorlib”

注意`2将泛型类型指定为具有两个类型参数.

> Specifying a value for your instance是通过设置value属性实现的.这是一个字符串值,必须以某种方式转换为字典的一系列键值对.遗憾的是,这不会发生.您需要编写一个自定义转换器,它将接受一个字符串并创建您的键/值对.可以在here找到这种转换器的示例.

作为最后的注释(和个人偏好),我真的不喜欢使用Unity来创建这种类型的对象.我通常使用自定义配置文件进行任何非平凡的初始化设置,并严格使用Unity来注册依赖注入的类型映射.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读