gpt4 book ai didi

c# - 在不使用 .NET 序列化程序的情况下将 Hashtable 转换为 xml 字符串并返回到 HashTable

转载 作者:太空狗 更新时间:2023-10-29 23:10:36 28 4
gpt4 key购买 nike

有谁知道如何在不使用基于 .NET 的 XMLSerializer 的情况下将哈希表转换为 XML 字符串然后再转换回哈希表。当代码在 IE 内部运行并且浏览器的保护模式打开时,XMLSerializer 会带来一些安全问题 -

所以基本上我正在寻找一种简单的方法将该哈希表转换为字符串并返回到哈希表。

任何示例代码将不胜感激。

谢谢

最佳答案

您可以使用 DataContractSerializer类:

using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Xml;

public class MyClass
{
public string Foo { get; set; }
public string Bar { get; set; }
}

class Program
{
static void Main()
{
var table = new Hashtable
{
{ "obj1", new MyClass { Foo = "foo", Bar = "bar" } },
{ "obj2", new MyClass { Foo = "baz" } },
};

var sb = new StringBuilder();
var serializer = new DataContractSerializer(typeof(Hashtable), new[] { typeof(MyClass) });
using (var writer = new StringWriter(sb))
using (var xmlWriter = XmlWriter.Create(writer))
{
serializer.WriteObject(xmlWriter, table);
}

Console.WriteLine(sb);

using (var reader = new StringReader(sb.ToString()))
using (var xmlReader = XmlReader.Create(reader))
{
table = (Hashtable)serializer.ReadObject(xmlReader);
}
}
}

关于c# - 在不使用 .NET 序列化程序的情况下将 Hashtable 转换为 xml 字符串并返回到 HashTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6202780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com