如何快速(不是很多事情)序列化该对象?
Dictionary<int, List<int[,]>>
原始XmlSerializer不支持字典和数组[,]
答案 0 :(得分:1)
修改强>:
由于Dictionary
不支持XmlSerializer
我的原始答案不正确,但我提供了其他序列化的参考。更好的答案是实现自己的KeyValuePair
类并将Dictionary
转换为此类,以便可以序列化。可以找到关于如何实施以及为什么需要这样做的一个很好的解释here。
注意:这是我的回答并且不正确。
此示例使用内置的.Net XmlSerializer
类序列化为字符串。序列化程序可以写入任何流,例如,如果要序列化为文件,则需要使用FileWriter
而不是StringWriter
。
// serialize into a string
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
// create a serializer for my specific type
XmlSerializer ser = new XmlSerializer(typeof(Dictionary<int, List<int[,]>>));
// perform serialization
ser.Serialize(sw, myObj);
// retrieve the final serialized result as a string I can work with
string serialized = sb.ToString();
// do something with serialized object
答案 1 :(得分:0)
如果您特别需要XML序列化,则自定义类可能会对您有所帮助。既然你实际上没有做KeyValuePair
尝试这样的事情:
[XMLSerializable]
public class CustomDictionary
{
public int Key {get; set;}
public List<Coordinate> Value {get; set;}
}
[XMLSerializable]
public class Coordinate
{
public int X;
public int Y;
}
假设标准Point(我相信是Double X,Double Y)将不起作用,并且您只在int数组的每一列中保存一个值。当然,您可以修改该容器类以满足您的特定需求。
一旦你正确标记了代码(不 - 我认为不是这样),你就可以调用股票XmlSerializer
来写入XML。