我想序列化一个HashSet的IXmlSerializable对象,是HashSet的xml可序列化的吗?是HashSet <T> Xml可串行化?
在我的情况下,我有类User和一个名为Users的HashSet。我可以避免为序列化目的创建用户类吗?
我喜欢将哈希集作为参数传递给xml序列化程序。
如果将xml作为http响应获取,可能会反序列化xml吗?我正在考虑使用MemoryStream,还有其他可能吗?
我想序列化一个HashSet的IXmlSerializable对象,是HashSet的xml可序列化的吗?是HashSet <T> Xml可串行化?
在我的情况下,我有类User和一个名为Users的HashSet。我可以避免为序列化目的创建用户类吗?
我喜欢将哈希集作为参数传递给xml序列化程序。
如果将xml作为http响应获取,可能会反序列化xml吗?我正在考虑使用MemoryStream,还有其他可能吗?
是的,它可以序列化为XML。试试吧:
var set = new HashSet<string>();
set.Add("hello");
set.Add("world");
var xs = new XmlSerializer(typeof(HashSet<string>));
string xml;
using (var writer = new StringWriter())
{
xs.Serialize(writer, set);
xml = writer.ToString();
Console.WriteLine(xml);
}
using (var reader = new StringReader(xml))
{
var set2 = (HashSet<string>)xs.Deserialize(reader);
foreach(string s in set2) Console.WriteLine(s);
}
非常感谢,只有一个问题:Deserialize方法如何理解它必须反序列化为HashSet而不是数组? – 2012-01-05 17:00:47
@ Fire-Dragon-DoL,因为'XmlSerializer'是为'HashSet
啊!好的,非常感谢!没想过。 – 2012-01-05 22:18:59
它有'Serializable'属性,所以我会说是。 http://msdn.microsoft.com/en-us/library/bb359438.aspx – 2012-01-05 16:07:00
@JamesMichaelHare,Serializable属性与XML序列化无关。 – 2012-01-05 16:09:01
这些看起来都是非常简单的测试...我错过了什么吗? – 2012-01-05 16:09:31