平面化xml以进行反序列化
本文关键字:反序列化 xml 平面化 | 更新日期: 2023-09-27 18:16:55
我要反序列化xml,为此我使用了这些类
[DataContract(Name = "Validation")]
public class FieldValidationModel
{
[DataMember]
public string Annotation { get; set; }
[DataMember]
public Collection<ValidationPlanType> PlanTypes { get; set; }
}
[DataContract(Name="PlanType")]
public class ValidationPlanType
{
[DataMember]
public string Name { get; set; }
}
它可以工作,但理想情况下我希望只使用一个类
[DataContract(Name = "Validation")]
public class FieldValidationModel
{
[DataMember]
public string Annotation { get; set; }
[DataMember]
public List<string> PlanTypes { get; set; }
}
我已经尝试使用
[DataMember]
[XmlArray, XmlArrayItem(Namespace="PlanType")]
public List<string> PlanTypes { get; set; }
没有运气,如果我可以这样做的话,节点将会被我现在使用的平坦
<Validation>
<Annotation>TestAnnotation</Annotation>
<PlanTypes>
<PlanType>
<Name>PlanA</Name>
</PlanType>
<PlanType>
<Name>PlanB</Name>
</PlanType>
</PlanTypes>
</Validation>
到更可读的
<Validation>
<Annotation>TestAnnotation</Annotation>
<PlanTypes>
<PlanType>PlanA</PlanType>
<PlanType>PlanB</PlanType>
</PlanTypes>
</Validation>
谢谢
我还没有试过,但应该可以工作:
[DataContract(Name = "Validation")]
public class FieldValidationModel
{
[DataMember]
public string Annotation { get; set; }
[DataMember]
public PlanTypeCollection PlanTypes { get; set; }
}
[CollectionDataContract(ItemName="PlanType")]
public class PlanTypeCollection : Collection<string> {}