我想序列化一个IXmlSerializable对象的HashSet,是HashSet xml可序列化吗?
在我的情况下,我有类User和一个名为Users的HashSet。我可以避免创建用于序列化的Users类吗?
我希望将hashset作为参数传递给xml序列化程序。
如果将xml作为http响应获取,是否可以反序列化?我在考虑使用MemoryStream,还有其他可能吗?
答案 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);
}