【问题标题】:How to serialize a Dictionary in XML [duplicate]如何在 XML 中序列化字典 [重复]
【发布时间】:2013-12-01 22:25:48
【问题描述】:

我正在尝试发送基于此实体的 XML:

[XmlElement]
public decimal Price { get; set; }
[XmlElement]
public Dictionary<string, string> Data{get; set;}

在添加最新参数之前没有问题,但是添加Dictionary就麻烦了。

例外是:

Error : There was an error reflecting type 'Project.Entities.Offers'.

这是序列化程序和导致问题的行

The XmlSerializer is doing an Exception

public string Serialize<T>()
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
...
}

这是解决这个问题的方法吗?解决方法?

谢谢你的帮助

【问题讨论】:

  • @Cory 我知道这个话题很熟悉。我也回答了这个问题:)

标签: c# .net wcf serialization reflection


【解决方案1】:

Dictionary&lt;TKey,TValue&gt; 未标记为可序列化。这样做的原因是当字典是 XML 格式时,你不能强制执行唯一性约束,没有什么可以阻止我做类似的事情

<Dictionary>
    <DictionaryElement Key="1" Value="Foo"/>
    <DictionaryElement Key="1" Value="Bar"/>
</Dictionary>

但是people usually write wrappers 使字典可序列化,但您需要决定它是静默跳过重复键还是在重复键上抛出异常。

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2019-09-27
    • 2021-08-19
    • 2016-02-14
    相关资源
    最近更新 更多