问题标签 [netdatacontractserializer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1206 浏览

c# - NetDataContractSerializer 和 CLR 类型

对于下面的 NetDataContractSerializer msdn 状态

“只有当序列化和反序列化端共享相同的 CLR 类型时,才能使用 NetDataContractSerializer”。

我的理解是,如果我使用 NetDataContractSerializer 在 .net4.0 中序列化文件,然后我将所有代码转移到 .net4.5,那么即使代码相同,使用 .net 4.0 的文件也不会被反序列化。

如果我的理解有误,请纠正我。

0 投票
8 回答
7509 浏览

c# - 修改序列化的 ASP.NET WebAPI 对象中的 xml 数组元素名称

在我的 WebAPI 控制器中返回对象列表时,我一直在努力输出自定义根 xml 元素。

我的控制器方法如下所示:

它呈现这样的 xml 输出:

我想改成<ArrayOfProduct><Products>但还没有找到这样做的方法。

我尝试了DataContractDataMember属性的不同变体,但无济于事。

有谁知道是否有一种方法可以做我想做的事List<Product>,而不是将我的对象包装在一个新类中并返回它?

0 投票
1 回答
122 浏览

.net - 如何通过 NetDataContractSerializer 测试 Serializable?

有什么方法可以测试代码中的 NetDataContractSerializer 是否可以序列化类型?我正在编写一个在内部使用 NetDataContractSerializer 的泛型类,如果试图将它与无法处理的类型一起使用,我希望在构造函数中引发异常。

0 投票
2 回答
2099 浏览

c# - Linq To Sql 对象和序列化问题

我正在尝试序列化对象图。它一直有效,直到我必须加载一个作为实体集的子实体。系统不允许它序列化......它给了我这个错误:

无法序列化类型“System.Data.Linq.EntitySet`1[NetDataContractSerializerTest.JobService]”。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

这是我正在使用的代码:

如果我删除

dataloadOptions.LoadWith(j => j.JobServices)

数据将与完整的 JN 和 nh 表一起序列化。但是当我把

dataloadOptions.LoadWith(j => j.JobServices)

回到我得到错误。

我个人认为它希望我将 ToList() 添加到 JobServices,不幸的是我做不到

dataloadOptions.LoadWith(j => j.JobServices.ToList())

这会引发错误。

有任何想法吗?

0 投票
2 回答
8621 浏览

c# - 避免在 .Net DataContractSerializer 中使用“http://www.w3.org/2001/XMLSchema-instance”命名空间

我有一系列类,我在 .NET 4.0 中使用 .NET 的 DataContractSerializer 将它们转换为 XML。序列化工作正常,我可以解析 XML 并稍后重新创建 .NET 对象,没有任何困难。

但是,大多数 DataMember 不是必需的。[DataMember(IsRequired = false)]。这对反序列化 XML 非常有效,您可能会错过文档中的 XML 节点,但是当将现有对象序列化为 XML 时,DataContractSerializer 坚持写出具有空值的属性作为具有属性的节点,例如

可以从序列化

但是,如果我序列化对象,它会创建:

当 DataContractSerializer 具有空值时,有没有办法让 DataContractSerializer 不写入节点?

0 投票
1 回答
320 浏览

c#-4.0 - NetDataContractSerializer 产生无效的 XML

我的 NetDataContractSerializer 似乎很困惑: XML 的结尾出现了两次:

正如你所看到的,有一些严重的口吃。它偶尔会发生,我无法重现该错误。有任何想法吗?可能是由于在写入文件时在 VS 中打开文件造成的吗?

我像这样序列化我的对象:

序列化的类如下所示:

谢谢!

0 投票
1 回答
1567 浏览

c# - 添加服务参考总是生成 xmlserializer 而不是 DataContractSerializer

我有一项服务: http ://chronicpainhostservice2.cloudapp.net/Service1.svc 我在 silverlight 5.0 应用程序中使用它。一切都很好。但是,当我使用“添加服务引用”将此服务添加到项目时,它总是生成 xmlserializer

还有一件事 - 当我尝试将它添加到简单的 Windows 应用程序时,它正在生成 DataContractSerializer ,所以问题不在于服务器。

如何强制 silverlight 生成 DataContractSerializer ?谢谢!

0 投票
2 回答
392 浏览

c# - 使用 NetDataContractSerializer 序列化枚举

我有以下内容:

我正在使用以下内容在客户端-服务器 wcf 中的故障和异常之间进行转换: 将故障转换为异常

问题是,当我将异常转换为故障时:

枚举没有被序列化,当我反序列化时,我得到了枚举的默认值。

我错过了什么?

0 投票
1 回答
551 浏览

wcf - protobuf-net 作为带有 OperationContract 对象的 wcf 序列化程序

我有使用 wcf 的项目。目前它使用 NetDataContractSerializer。我想迁移到 protobuf-net。我的服务有以下合同:

一切顺利,直到我尝试调用我的合同的 GetRemoteProperty 方法,该方法的返回类型是对象。使用我发现的服务器跟踪,该服务器因以下消息而崩溃

尝试序列化参数http://www.mersoft.am/Remoting:GetRemotePropertyResult时出错。InnerException 消息是 'Type 'Mersoft.Remoting.InstanceIdentifier[]' 与数据合同名称 'ArrayOfInstanceIdentifier:Mersoft.Remoting' 不是预期的。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。有关更多详细信息,请参阅 InnerException。

那么,我该如何解决呢?

0 投票
0 回答
286 浏览

c# - 反序列化缺少的元素时出错

NetDataContractSerializer用于序列化/反序列化。我已经序列化了包含 Employee 对象的字典

现在我已经更改了 Employee 对象并包含了布尔字段 IsManager 因此,在对 xml 进行反序列化之后,我希望将 IsManger 的 Employee 对象作为 false 值。
但是我在反序列化 xml 时遇到了错误。

第 1 行位置 1676 中的错误。不应出现命名空间“ http://schemas.datacontract.org/2004/07/ ..”中的“元素”“ x003C ....” 。期待元素“ x003C ....”。

我已经尝试过[DataMember(IsRequired = false)]IsManager[XmlElement(IsNullable=true)]字段的属性,但它没有解决问题。

员工类

Employee 类在字典中被序列化以从字典(xml)中读取它我正在使用下面的代码