c# - HashSet<T> Xml 是可序列化的吗?

标签 c# xml http serialization hashset

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

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

我想将哈希集作为参数传递给 xml 序列化程序。

如果 xml 是作为 http 响应获取的,是否可以反序列化它?我正在考虑使用 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);
}

关于c# - HashSet<T> Xml 是可序列化的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8745592/

相关文章:

c# - 每次回发后的 Chrome realod 图像 - updatepanel

C# 泛型转换

c# - Visual Studio Code Coverage 在 vNext 项目中过时了吗?

sql-server - 需要将 SQL Server xml blob 转换为表进行操作

http - 从 Azure blob 下载数据的成本

java - 用Java测试网站有效性

http - http 中的 md5 范围

c# - 标记为只读的 EF 核心计算属性

java - 将 xpath 表达式结果转换为 json

javascript - 使过滤器出现在 ExtJs 4.1.3 列上方