HashSet <T> Xml是否可序列化?

Fir*_*DoL 2 c# xml serialization http hashset

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

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

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

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

Tho*_*que 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);
}
Run Code Online (Sandbox Code Playgroud)