XmlAttribute/XmlText нельзя использовать для кодирования сложных типов
Я получаю следующую ошибку в следующем классе:
не удается сериализовать элемент "ингредиент" типа DataObjects.Ингридиент. XmlAttribute / XmlText нельзя использовать для кодирования сложных типов.
любые мысли о том, почему?
[DataContract]
[Serializable]
[XmlRoot("ingredient")]
public class Ingredient
{
private string id;
private string name;
private string description;
private IngredientNutrient[] nutrients;
public Ingredient(string id, string name, string description, IngredientNutrient[] nutrients)
{
this.id = id;
this.name = name;
this.description = description;
this.nutrients = nutrients;
}
public Ingredient(string id, string name, string description)
{
this.id = id;
this.name = name;
this.description = description;
}
public Ingredient()
{
}
[DataMember]
[XmlAttribute("id")]
public string ID
{
get { return this.id; }
set { this.id = value; }
}
[DataMember]
[XmlAttribute("name")]
public string Name
{
get { return this.name; }
set { this.name = value; }
}
[DataMember]
[XmlAttribute("description")]
public string Description
{
get { return this.description; }
set { this.description = value; }
}
[DataMember]
[XmlArray("nutrients")]
[XmlArrayItem("ingredientnutrient")]
public IngredientNutrient[] Nutrients
{
get { return this.nutrients; }
set { this.nutrients = value; }
}
}
2 ответов
вам, вероятно, придется использовать [XmlElement]
вместо [XmlAttribute]
. Атрибут не может быть сложным типом.