问题标签 [datacontractserializer]

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 投票
1 回答
412 浏览

wcf - WCF DataContractSerializer 无法序列化

我有一个直截了当的服务,例如:

我的数据合同很简单,没有什么不寻常的:

我正在使用 WebServiceHostFactory 而不是手动绑定。

当我在 IIS 5.1(Windows XP,我的本地开发环境)上运行它时,我得到如下返回:

但是,当我将完全相同的代码放在生产框中的 IIS 6.0 上时,我会得到如下返回:

所以我的问题是双重的:

  1. 为什么它不在我的本地开发环境中提供命名空间?
  2. 为什么通过将基本路径附加到标签内的服务来创建错误的 XML?

显然,坏的 XML 节点会破坏任何解析器,所以这对我来说绝对没用。奇怪的是,这只发生在特定的服务方法上,所有其他方法都可以正常工作,并且配置方式相同。

编辑:当我使用 JSON 时,一切看起来都很好,所以我认为这不是 WCF 的问题。它必须是一个序列化程序问题。

0 投票
1 回答
251 浏览

ruby-on-rails - 是否有与 .NET DataContract 序列化程序等效的 Ruby

我一直在使用 WCF 的 DataContract 和 DataContractSerializer 将对象读/写到 XML 文件。我们想切换到使用 Ruby on Rails 版本,我想知道我可以使用什么。我们有具有以下属性的对象(这些只是示例而不是确切的对象):

在对象中读取的代码是:

在 Ruby/Rails 中做同样事情的等效格式是什么?如何定义对象?我用什么方法从 XML 文件中读取它们?我已经看到我可以尝试将所有内容定义为模型,然后为每个对象创建一个后端数据库。无论如何都可以在不创建所有数据库表的情况下执行此操作,因为我们不需要此应用程序的数据库,而只是从 XML 文件中读取一组静态对象。

0 投票
2 回答
158 浏览

wcf - 通过服务引用控制哪些属性被序列化

我们有一个指向 WCF 服务的服务引用,它充当处理数据访问逻辑的模型层的代理。在后台,我们使用 Linq2Sql 作为 ORM 来促进数据库通信。

我们使用生成的类作为我们的数据访问层,但返回的实际上是哑 DTO 对象,它们只不过是 POCO。我想做两件事)

1) 根据自定义类型及其相关属性,通过服务引用控制客户端上可用的内容。这是为了减少班级的规模。

2)我知道 Linq2Sql 实际上是在装饰所有生成的类,但我不希望这些类通过服务引用下降。

目前,如果我们使用类作为输入参数的返回类型,它会被序列化。这很好,除了我想限制哪些属性可用

想法?

0 投票
2 回答
1268 浏览

wcf - 将用 [DataContract] 修饰的对象放入 StateServer?

无论如何将用DataContract属性修饰但没有用Serializable属性修饰的对象粘贴到 SqlServer StateServer 中?换句话说,我宁愿不必用Serializable属性来装饰这些对象,因为我还必须在所有这些对象上实现 IXmlSerizable,因为它们没有空构造函数和属性的非公共设置器。

0 投票
2 回答
11267 浏览

c# - DataContractSerializer 和反序列化 Web 服务响应类型

我正在使用调用 Web 服务并在客户端上使用 WCF 生成的服务引用。我已将从测试服务接收到的 XML 响应保存到磁盘(没有 SOAP 信封和正文标记)我想从磁盘加载它们并从中创建对象。让我们从我的网络服务中采用以下方法:

我手动(通过 SOAP UI)将响应保存到磁盘到文件,示例响应:

然后我尝试使用以下方法从文件中反序列化对象:

这失败了——序列化程序抱怨错误,它期待命名空间“ http://schemas.datacontract.org/2004/07 ”中的元素,但在“ http://myNamespace ”中找到元素。

问题:为什么不DataContractSerializer使用在 SomeMethodResponseType 上声明的命名空间XmlTypeAttribute(Namespace="http://myNamespace")

我可以通过向DataContractSerializer构造函数显式提供命名空间和根元素来解决这个问题。但随后它失败,消息类似于:

X 行位置 Y(XML 文档的最后一行)出错。'EndElement' 'SomeMethodResponse
来自命名空间'httpmyNapespace' 不是预期的。期待元素“someNameField”。

SomeName是 Web 服务正在使用的 XSD 中的一个元素。它也是SomeMethodResponse类型的一个属性,由名为 的私有字段支持someNameField。看起来DataContractSerializer除了属性之外,它还试图反序列化这些字段。

如何使从磁盘保存的 XML 脱轨并取回 SomeMethod 返回的相同类型的对象?

谢谢, 马特拉

0 投票
2 回答
11705 浏览

wcf - WCF Datacontract,某些字段不反序列化

问题:

我有一个 WCF 服务设置作为来自外部系统的调用的端点。呼叫正在发送纯 xml。我通过使用 RequestBuilder 从 Fiddler 向服务发送调用来测试系统。

问题是我的所有字段都被反序列化,但两个字段除外。price_retailprice_wholesale

我错过了什么?所有其他字段都反序列化没有问题 - 服务响应。就是这些领域。

XML 消息:

服务方式:

留言类:

0 投票
1 回答
1773 浏览

c# - 数据合同序列化不适用于所有元素

我有一个试图序列化为对象的 XML 文件。有些元素被忽略了。

我的 XML 文件:

我的班级定义:

我的序列化尝试:

以下元素被序列化:

  • 指导
  • 有效密钥

以下元素未序列化:

  • 网址
  • 当前的日期
  • 注册日期
  • 截止日期

用“blah”替换 xml 文件中的字符串日期也不起作用。是什么赋予了?

0 投票
1 回答
89 浏览

c# - 更改属性序列化的内容

我想我已经知道这个问题的答案,但是我找不到任何可以明确说明它的东西,因此我的问题是——我想确保我没有错过任何技巧。

使用 DataContractSerializer 或 XmlSerializer,有什么方法可以更改 pulic 属性的序列化方式?我有一个属性,它是一个Enum,我希望它被序列化为一个int,以便它的值通过网络发送,而不是它的值的文本表示形式。是否可以使用属性来做到这一点,还是我必须编写自己的序列化程序?

谢谢 :)

0 投票
2 回答
2649 浏览

c# - DataContractSerializer 如何写入私有字段?

我了解 XMLSerializer 如何通过使用反射来确定应该使用哪些公共读/写字段或属性来序列化或反序列化 XML。然而 XMLSerializer 要求这些字段是公共的并且是读/写的。

但是,DataContractSerializer 能够从类中的完全私有字段读取或写入。所以我想知道如果没有明确地赋予 DataContractSerializer 对我的类的额外访问权限,这怎么可能实现。

0 投票
1 回答
427 浏览

wcf - WCF 序列化 - 更多信息

我读了一些微软文章。他们解释了 WCFDataContractSerializer用于序列化。但是这些文章没有解释为什么 DataContractSerializer 比 XmlSerialization 更受欢迎。谁能给我额外的信息?