所以这可能是一些随机请求,但任何帮助都会受到极大的欢迎! 我正在研究一个类似这样的XML文档......
<images>
<image>
<url>
http://www.someUrl.com
</url>
</image>
<bonusimage>
<url>
http://www.someOtherUrl.com
</url>
</bonusimage>
</images>
我想做的是以下内容:
[XmlArray("images")]
[XmlElementAttribute("image", Type = typeof(CustomImageClass), IsNullable = false)]
[XmlElementAttribute("bonusimage", Type = typeof(CustomImageClass), IsNullable = false)]
[XmlChoiceIdentifierAttribute("ItemsElementName")]
public CustomImageClass[] items;
[XmlElementAttribute(IsNullable = false)]
[XmlIgnoreAttribute()]
public ImageType[] ItemsElementName;
我也有一个枚举定义如下:
[XmlType(IncludeInSchema = false)]
public enum ImageType
{
[XmlEnumAttribute("image")]
CustomImage,
BonusImage,
}
我试图按照以下网页上的第二个方案来描述我的问题。
但是,运行此代码会导致以下错误:
为成员'items'指定了不明确的类型。项目'bonusimage'和'image'具有相同的类型。请考虑将XmlElementAttribute与XmlChoiceIdentifierAttribute一起使用。
对于那个巨大的帖子感到抱歉,但是我一直在墙上撞了一会儿,想尽可能多地提供信息!我想我需要第二双眼睛来帮助我看看我哪里出错了。
再次感谢!
答案 0 :(得分:0)
好的,谢谢你的输入,但不幸的是我需要保持对象的顺序。所以这就是我发现的解决方案:
[XmlArray("images")]
[XmlElementAttribute(Type = typeof(Bonusimage))]
[XmlElementAttribute(Type = typeof(CustomImageClass))]
public CustomImageClass[] items;
[XmlType("bonusimage")]
public class Bonusimage: CustomImageClass
{
}
[XmlType("image")]
public class CustomImageClass
{
}