cls*_*s71 9 c# wcf serialization exception datacontract
我有这个代码:
[DataContract]
class MyData
{
private Int32 dato1;
[DataMember]
public Int32 Dato1
{
get { return dato1; }
set { dato1 = value; }
}
public MyData(Int32 dato1)
{
this.dato1 = dato1;
}
public MyData()
{
this.dato1 = 0;
}
}
[DataContract]
class MyCollection2 : List<MyData>
{
public MyCollection2()
{
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下命令序列化MyCollection2的一个对象:
MyCollection2 collec2 = new MyCollection2();
collec2.Add(new MyData(10));
DataContractSerializer ds = new DataContractSerializer(typeof(MyCollection2));
using (Stream s = File.Create(dialog.FileName))
{
ds.WriteObject(s, collec2);
}
Run Code Online (Sandbox Code Playgroud)
然后我得到下一个例外:
InvalidDataContractException是一个无效的集合类型,因为它具有DataContractAttribute
但是,如果我使用下一个类(不直接从List继承,而是具有List成员):
[DataContract]
class MyCollection1
{
[DataMember]
public List<MyData> items;
public MyCollection1()
{
items = new List<MyData>();
}
}
Run Code Online (Sandbox Code Playgroud)
这里序列化工作正常.你知道为什么吗 ?.非常感谢.
| 归档时间: |
|
| 查看次数: |
6649 次 |
| 最近记录: |