我想创建一个自定义XML结构,如下所示:
<Hotels>
<Hotel />
</Hotels>
为了能够做到这一点,我创建了
List
的实现。我的代码如下:[XmlRootAttribute(ElementName="Hotels")]
public class HotelList: List<HotelBasic>
因为List所保存的类未命名为
Hotel
而是HotelBasic
,所以我的xml就像<Hotels>
<HotelBasic />
</Hotels>
如何解决此问题而无需实现
ISerializable
或IEnumerable
? 最佳答案
假设您正在使用XmlSerializer
,如果您要做的只是更改HotelBasic
类的序列化方式,则可以使用XmlTypeAttribute
:
[XmlType(TypeName = "Hotel")]
public class HotelBasic
{
public string Name { get; set; }
}
与
HotelList
类一起使用时,它将序列化为:<Hotels xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Hotel>
<Name>One</Name>
</Hotel>
<Hotel>
<Name>Two</Name>
</Hotel>
</Hotels>