WCF XML结构-如何删除包装器节点?

| 使用列表对象时遇到麻烦:
[DataContract]
public class Recipe
{
        [DataMember(Name=\"Allergies\")]
        public List<AllergyModel> Allergies { get; set; }
}

[DataContract]    
public class AllergyModel
{
    public string Allergy { get; set; }
}
如何使生成的XML不包含AllergyModel节点?当我读取Recipe参数时,“过敏”列表属性为null,因为在原始XML中,该结构没有“过敏模型”节点。
<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>
{
    ...
}
使用此收藏而不是
List<AllergyModel>
。重要的是您可以在自定义集合中传递项目的名称。
您可以改用MessageContract属性,并将IsWrapped参数设置为false

要回复问题请先登录注册