作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
是否有任何可能的方法将动态创建的对象序列化为 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/
我是一名优秀的程序员,十分优秀!