Windows 通用 XML 序列化
Windows Universal XML Serialization
我一直在开发一个厨房应用程序,它需要保存食谱。除了 List<IngredientMeasure> IngredientList
之外,XML 序列化一切正常。我听说很多其他人在序列化 classes 列表时也遇到了问题,我看到了这个:Serializing Lists of Classes to XML。
我尝试了那里的解决方案,但其中 none 行得通。
以下是 Recipe
class:
的字段
[DataContract]
public class Recipe
{
[DataMember]
public static List<Recipe> RecipeList = new List<Recipe>();
[DataMember]
public string Name { get; set; }
[DataMember]
public string FilePath { get; set; }
[DataMember]
public List<IngredientMeasure> IngredientList { get; set; }
[XmlArray("IngredientsList")]
public List<string> Ingredients = new List<string>();
[DataMember]
public List<string> DirectionList { get; private set; }
[DataMember]
public List<string> Notes { get; private set; }
public Recipe()
{
}
}
这里是 IngredientMeasure
class:
public class IngredientMeasure
{
[DataMember]
public Ingredient ingredient;
[DataMember]
public Measure measure;
public IngredientMeasure()
{
}
}
感谢任何帮助。
根据你刚才提到的link,XmlArray
应该在包含项的列表中而不是在字符串列表中。
[DataContract]
public class Recipe
{
[XmlArray("IngredientsList", XmlArrayItem(typeof(IngredientMeasure), ElementName = "IngredientMeasure"))]
public List<IngredientMeasure> IngredientList { get; set; }
// ... other properties
}
我一直在开发一个厨房应用程序,它需要保存食谱。除了 List<IngredientMeasure> IngredientList
之外,XML 序列化一切正常。我听说很多其他人在序列化 classes 列表时也遇到了问题,我看到了这个:Serializing Lists of Classes to XML。
我尝试了那里的解决方案,但其中 none 行得通。
以下是 Recipe
class:
[DataContract]
public class Recipe
{
[DataMember]
public static List<Recipe> RecipeList = new List<Recipe>();
[DataMember]
public string Name { get; set; }
[DataMember]
public string FilePath { get; set; }
[DataMember]
public List<IngredientMeasure> IngredientList { get; set; }
[XmlArray("IngredientsList")]
public List<string> Ingredients = new List<string>();
[DataMember]
public List<string> DirectionList { get; private set; }
[DataMember]
public List<string> Notes { get; private set; }
public Recipe()
{
}
}
这里是 IngredientMeasure
class:
public class IngredientMeasure
{
[DataMember]
public Ingredient ingredient;
[DataMember]
public Measure measure;
public IngredientMeasure()
{
}
}
感谢任何帮助。
根据你刚才提到的link,XmlArray
应该在包含项的列表中而不是在字符串列表中。
[DataContract]
public class Recipe
{
[XmlArray("IngredientsList", XmlArrayItem(typeof(IngredientMeasure), ElementName = "IngredientMeasure"))]
public List<IngredientMeasure> IngredientList { get; set; }
// ... other properties
}