【发布时间】:2014-02-02 21:13:31
【问题描述】:
这就是它所说的: 不需要数据合同名称为“ArrayOfItemType:ItemType”的类型“ItemType[]”。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。
代码很简单
DataContractSerializer ser = new DataContractSerializer(typeof(ItemType));
FileStream file = new FileStream("ItemType.xml", FileMode.Create);
ser.WriteObject(file, itemTypes);
我试图序列化的对象是
protected static ItemType[] itemTypes = new ItemType[100];
从类派生:
[DataContract(Namespace = "ItemType")]
public class ItemType
{
string name;
private int numberOfActions;
[DataMember()]
public int[] codeOfAction = new int[10];
[DataMember()]
public int[] recipeType;
[DataMember()]
public int[] recipeNum;
public ItemType()
{
this.name = " ";
this.recipeType = new int[10];
this.recipeNum = new int[10];
this.recipeType[0] = 0;
}
[DataMember]
public string ItemName
{
get {return name;}
set { name = value; }
}
[DataMember]
public int NumberOfAction
{
get { return numberOfActions; }
set { numberOfActions = value; }
}
}
【问题讨论】:
标签: c# xml-serialization