通过XML配置统一字典

前端之家收集整理的这篇文章主要介绍了通过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来注册依赖注入的类型映射.

猜你在找的XML相关文章