【发布时间】:2011-06-19 01:13:18
【问题描述】:
我通过以下两个声明将 Dictionary 对象转换为 List 派生类:
[Serializable]
public class LogItem
{
public string Name { get; set; }
public string Value { get; set; }
public LogItem(string key, string value)
{
Name = key; Value = value;
}
public LogItem() { }
}
public class SerializableDictionary : List<LogItem>
{
public SerializableDictionary(Dictionary<string, string> table)
{
IDictionaryEnumerator index = table.GetEnumerator();
while (index.MoveNext())
{
Put(index.Key.ToString(), index.Value.ToString());
}
}
private void Put(string key, string value)
{
base.Add(new LogItem(key, value));
}
}
我打算通过以下代码序列化SerializableDictionary:
SerializableDictionary log = new SerializableDictionary(contents);
using (StringWriter xmlText = new StringWriter())
{
XmlSerializer xmlFormat =
new XmlSerializer(typeof(SerializableDictionary), new XmlRootAttribute("Log"));
xmlFormat.Serialize(xmlText, log);
}
工作正常,但我无法更改 XML 格式。
此 XML 文档旨在发送到 xml 数据库字段,而不是反序列化。
- 我宁愿同时拥有名称和价值 格式化为的属性 LogItem 元素。
但是,任何使用 XMLAttribute 的尝试都会导致反射或编译错误。我不知道我能做些什么来达到这个要求。有人可以帮忙吗?
【问题讨论】:
标签: c# xml serialization