我正在创建一个API包装器,它获取API响应并将其转换为POCO对象。 现在我有一个测试遵循这一系列的动作:
我有以下帮助类,它代表一个show对象:
class TestShow {
public string id { get; set; }
public string IMDB_ID { get; set; }
public string Language { get; set; }
}
序列化器:
var serializer = new XmlSerializer(show.GetType());
string xml;
using (var writer = new StringWriter()) {
serializer.Serialize(writer, show);
xml = writer.ToString();
}
但是,当我将其序列化为XML时,我得到了这个结果:
<?xml version="1.0" encoding="utf-16"?>
<TestShow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<id>76290</id>
<IMDB_ID>tt0285331</IMDB_ID>
<Language>en</Language>
</TestShow>
期望的结果是:
<Data>
<Series>
<id>76290</id>
<IMDB_ID>tt0285331</IMDB_ID>
<Language>en</Language>
</Series>
</Data>
这显示了两个问题:
TestShow
的名称应更改为Series
。有没有一种简单的方法可以做到这一点,或者我应该更改我的班级名称?Data
的上部集合。我该如何添加?答案 0 :(得分:3)
将Xml属性添加到POCO:
class TestShow
{
public string id { get; set; }
public string IMDB_ID { get; set; }
public string Language { get; set; }
}
[XmlRoot("Data")]
class Data
{
[XmlElement("Series")]
public TestShow TestShow { get; set; }
}