gpt4 book ai didi

.net - 如何将匿名类型的对象序列化为 XML?

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:06 24 4
gpt4 key购买 nike

是否有任何可能的方法将动态创建的对象序列化为 xml 字符串?

var foobar = new { foo = "bar" };
string xml = ConvertToXMLString(foobar);
//xml should be something like :
//<foo>bar</foo>

我能够查看 XMLSerializer 和 DataContractSerializer,但 XMLSerializer 需要对象类型,而 DataContractSerializer 需要需要序列化的属性的属性。

无奈之下,我先将对象转换为 JSON,再从 JSON 将其转换为 XML。

var foobar = new { foo = "bar" };
JavaScriptSerializer js = new JavaScriptSerializer();
jsonString = js.Serialize(values);
//Json.NET at http://json.codeplex.com/
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(jsonString);

最佳答案

不使用标准的内置序列化程序,不; XmlSerializer 要求 公共(public)类型(匿名类型不是),并且仅适用于读写成员(匿名类型不要'有)。 DataContractSerializer 需要属性(匿名类型没有)。

坦率地说,这里最简单和最受支持的“修复”是正式声明一个与您所追求的相匹配的 POCO DTO,也就是:不要在这里使用匿名类型。例如:

public class MyDto {
public string foo {get;set;}
}
...
var foobar = new MyDto { foo = "bar" };

备选方案是本质上编写您自己的 xml 序列化程序。那...听起来并不好玩。

关于.net - 如何将匿名类型的对象序列化为 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896228/

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