- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个代码:
[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()
{
}
}
然后我尝试序列化 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);
}
然后我得到下一个异常:
InvalidDataContractException is an invalid collection type since it have DataContractAttribute
但是,如果我使用下一个类(不直接从 List 继承,而是有一个 List 成员):
[DataContract]
class MyCollection1
{
[DataMember]
public List<MyData> items;
public MyCollection1()
{
items = new List<MyData>();
}
}
这里序列化工作正常。你知道为什么吗 ?。非常感谢。
最佳答案
关于c# - InvalidDataContractException 是无效的集合类型,因为它具有 DataContractAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730259/
我正在查看 Microsoft 的操作方法:Create a Basic Data Contract for a Class or Structure ,但这给我留下了很多问题。 他们提供了这个非常简
This MSDN article建议始终为 ServiceContract 和 DataContract 提供命名空间。 示例通常具有“模式”前缀和 namespace 的 URI 类型模式,例如
wcf NetDataContractAttribute 和 DataContractAttribute 应该使用哪个? 数据类如下 namespace ABC { [Serializable
我有一组用户定义的类型,它们已经实现了 ISerializable 接口(interface),现在我想将它们托管在服务器端应用程序中,并通过使用 DataContract 属性标记它们来向客户端公开
我在我的获胜表格上遇到了这个错误“system.Runtime.Serialization.DataContractAttrubute 未定义”与“IExtensibleDataObject、Exte
我有一个类型 class Foo { public string Name { get; set; } } 我可以使用 JsonConvert.SerializeObject() 方法(无
我有这个代码: [DataContract] class MyData { private Int32 dato1; [DataMember] public Int32 Dat
我有一个 Web API,我只是想以 XML 格式向调用客户端返回一些数据。 我不断收到以下错误: Type '<>f__AnonymousType7`9[System.String,System.
我发现当涉及的数据类型没有 [DataContract] 时,我的 WCF 服务可以正常工作。 ,但 [Serializable]反而。 但是所有的 WCF 教程都显示了第一个而不是后者。为什么? 最
当我使用 svcutil.exe 从 xsd 文件中包含的定义生成 Customer 类时: 我得
我正在尝试使用 WCF 服务上传 GZip 文件。我试图使用 Gzip 压缩文件,然后将其传递给 WCF 服务以上传到服务器。每次运行代码时,我都会收到此错误消息 'System.IO.Compres
当我尝试序列化从 TableEntity 派生的实体时收到此错误消息: Type 'MyClass' cannot inherit from a type that is not marked wit
我正在做一些 WCF 工作,但我不明白为什么会遇到这个错误。 System.Runtime.Serialization.DataContractAttribute命名空间中不存在 System.Run
我们正在向 Windows Mobile 客户端添加功能,以将数据发送到 .NET 服务。不幸的是,svcutil.exe 创建的 .cs 类为 Compact Framework 生成了无法使用的代
我是一名优秀的程序员,十分优秀!