WCF XML结构-如何删除包装器节点?
使用列表对象时遇到问题:WCF XML结构-如何删除包装器节点?,xml,wcf,Xml,Wcf,使用列表对象时遇到问题: [DataContract] public class Recipe { [DataMember(Name="Allergies")] public List<AllergyModel> Allergies { get; set; } } [DataContract] public class AllergyModel { public string Allergy { get; set; } } [Dat
[DataContract]
public class Recipe
{
[DataMember(Name="Allergies")]
public List<AllergyModel> Allergies { get; set; }
}
[DataContract]
public class AllergyModel
{
public string Allergy { get; set; }
}
[DataContract]
公共课食谱
{
[DataMember(Name=“Allergies”)]
公共列表过敏{get;set;}
}
[数据合同]
公共类变态反应模型
{
公共字符串{get;set;}
}
如何使生成的XML不包括AllergyModel节点?当我阅读Recipe参数时,Allergies list属性为null,因为在原始XML中,该结构没有AllergyModel节点
<Allergies>
<a:AllergyModel>
<a:Allergy>nuts</a:Allergy>
</a:AllergyModel>
<a:AllergyModel>
<a:Allergy>wheat</a:Allergy>
</a:AllergyModel>
</Allergies>
坚果
小麦
尝试改用自定义集合:
[CollectionDataContract(Name = "Allergies", ItemName = "Allergy")]
public class AllergyList : List<string>
{
...
}
[CollectionDataContract(Name=“Allergies”,ItemName=“Allergy”)]
公共类AllergyList:列表
{
...
}
使用此集合而不是
列表
。重要的是,您可以在自定义集合中传递项目的名称。您可以使用MessageContract属性,并将IsWrapped参数设置为false谢谢,我的结构现在是nutswheat,但当我检查public XElement SubmitRecipe(配方配方)配方时。过敏症的计数为0,有什么想法吗?我的示例如下(我收到的是简单的数据类型,而不是集合)。坚果小麦我不确定我是否理解当前的问题。嗨,凯文,仅供我参考,你能告诉我为什么messageContract不适合你的情况吗?