【发布时间】:2016-05-30 12:54:34
【问题描述】:
我有一个自定义类:
public class DicExpense
{
[XmlElement]
public string EmployeeName { get; set; }
[XmlElement]
public string Company { get; set; }
}
我将其放入这样的字典中:
var dict = new Dictionary<string, List<DicExpense>>();
dict.Add("Expense1",new List<DicExpense>())
dict["Expense1"].Add(new DicExpense() {EmployeeName = "Sam", Comment = "something"})
dict["Expense1"].Add(new DicExpense() {EmployeeName = "Sam", Comment = "something"})
dict.Add("Expense2",new List<DicExpense>())
dict["Expense2"].Add(new DicExpense() {EmployeeName = "John", Comment = "something"})
dict["Expense2"].Add(new DicExpense() {EmployeeName = "John", Comment = "something"})
我想将其序列化为 XML:
<Expense>
<key>Expense1</key>
<EmployeeName>Sam</EmployeeName>
<Comment>something</Comment>
<EmployeeName>John</EmployeeName>
<Comment>something</Comment>
</Expense>
我正在尝试这个:
StringBuilder output = new StringBuilder();
var writer = new StringWriter(output);
XmlSerializer serializer = new XmlSerializer(typeof(Dictionary<string, List<DicExpense>>));
serializer.Serialize(writer, records);
Console.WriteLine(output);
但它不起作用。当您的值是自定义类型的集合时,有没有办法序列化它?
【问题讨论】:
-
什么不起作用?您预期的 xml 正式文件将因多于 1 条记录而无效。
-
这里你可以找到更多关于使用 XmlSerializer 序列化字典的细节stackoverflow.com/questions/495647/…
标签: c# xml linq dictionary