.net – 如何将匿名类型的对象序列化为XML?
发布时间:2020-12-16 00:01:24 所属栏目:百科 来源:网络整理
导读:有没有可能的方法将动态创建的对象序列化为xml字符串? var foobar = new { foo = "bar" };string xml = ConvertToXMLString(foobar);//xml should be something like : //foobar/foo 我能够看一下XMLSerializer和DataContractSerializer,但XMLSerializer需
有没有可能的方法将动态创建的对象序列化为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需要公共类型(匿名类型不是),并且只适用于读写成员(匿名类型没有). DataContractSerializer需要属性(匿名类型没有).
坦率地说,这里最简单,最可支持的“修复”是正式声明一个匹配你所追求的POCO DTO,又名:不要在这里使用匿名类型.例如: public class MyDto { public string foo {get;set;} } ... var foobar = new MyDto { foo = "bar" }; 另一种方法是编写自己的xml序列化程序.那…听起来不是很有趣. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |