HashSet <t> Xml可序列化吗?</t>

时间:2012-01-05 16:03:41

标签: c# xml http serialization hashset

我想序列化一个IXmlSerializable对象的HashSet,是HashSet xml可序列化吗?

在我的情况下,我有类User和一个名为Users的HashSet。我可以避免创建用于序列化的Users类吗?

我希望将hashset作为参数传递给xml序列化程序。

如果将xml作为http响应获取,是否可以反序列化?我在考虑使用MemoryStream,还有其他可能吗?

1 个答案:

答案 0 :(得分:8)

是的,它可以序列化为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);
}