问题标签 [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.
wcf - WCF DataContractSerializer 无法序列化
我有一个直截了当的服务,例如:
我的数据合同很简单,没有什么不寻常的:
我正在使用 WebServiceHostFactory 而不是手动绑定。
当我在 IIS 5.1(Windows XP,我的本地开发环境)上运行它时,我得到如下返回:
但是,当我将完全相同的代码放在生产框中的 IIS 6.0 上时,我会得到如下返回:
所以我的问题是双重的:
- 为什么它不在我的本地开发环境中提供命名空间?
- 为什么通过将基本路径附加到标签内的服务来创建错误的 XML?
显然,坏的 XML 节点会破坏任何解析器,所以这对我来说绝对没用。奇怪的是,这只发生在特定的服务方法上,所有其他方法都可以正常工作,并且配置方式相同。
编辑:当我使用 JSON 时,一切看起来都很好,所以我认为这不是 WCF 的问题。它必须是一个序列化程序问题。
ruby-on-rails - 是否有与 .NET DataContract 序列化程序等效的 Ruby
我一直在使用 WCF 的 DataContract 和 DataContractSerializer 将对象读/写到 XML 文件。我们想切换到使用 Ruby on Rails 版本,我想知道我可以使用什么。我们有具有以下属性的对象(这些只是示例而不是确切的对象):
在对象中读取的代码是:
在 Ruby/Rails 中做同样事情的等效格式是什么?如何定义对象?我用什么方法从 XML 文件中读取它们?我已经看到我可以尝试将所有内容定义为模型,然后为每个对象创建一个后端数据库。无论如何都可以在不创建所有数据库表的情况下执行此操作,因为我们不需要此应用程序的数据库,而只是从 XML 文件中读取一组静态对象。
wcf - 通过服务引用控制哪些属性被序列化
我们有一个指向 WCF 服务的服务引用,它充当处理数据访问逻辑的模型层的代理。在后台,我们使用 Linq2Sql 作为 ORM 来促进数据库通信。
我们使用生成的类作为我们的数据访问层,但返回的实际上是哑 DTO 对象,它们只不过是 POCO。我想做两件事)
1) 根据自定义类型及其相关属性,通过服务引用控制客户端上可用的内容。这是为了减少班级的规模。
2)我知道 Linq2Sql 实际上是在装饰所有生成的类,但我不希望这些类通过服务引用下降。
目前,如果我们使用类作为输入参数的返回类型,它会被序列化。这很好,除了我想限制哪些属性可用
想法?
wcf - 将用 [DataContract] 修饰的对象放入 StateServer?
无论如何将用DataContract
属性修饰但没有用Serializable
属性修饰的对象粘贴到 SqlServer StateServer 中?换句话说,我宁愿不必用Serializable
属性来装饰这些对象,因为我还必须在所有这些对象上实现 IXmlSerizable,因为它们没有空构造函数和属性的非公共设置器。
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 返回的相同类型的对象?
谢谢, 马特拉
wcf - WCF Datacontract,某些字段不反序列化
问题:
我有一个 WCF 服务设置作为来自外部系统的调用的端点。呼叫正在发送纯 xml。我通过使用 RequestBuilder 从 Fiddler 向服务发送调用来测试系统。
问题是我的所有字段都被反序列化,但两个字段除外。price_retail和price_wholesale。
我错过了什么?所有其他字段都反序列化没有问题 - 服务响应。就是这些领域。
XML 消息:
服务方式:
留言类:
c# - 数据合同序列化不适用于所有元素
我有一个试图序列化为对象的 XML 文件。有些元素被忽略了。
我的 XML 文件:
我的班级定义:
我的序列化尝试:
以下元素被序列化:
- 指导
- 有效密钥
以下元素未序列化:
- 网址
- 当前的日期
- 注册日期
- 截止日期
用“blah”替换 xml 文件中的字符串日期也不起作用。是什么赋予了?
c# - 更改属性序列化的内容
我想我已经知道这个问题的答案,但是我找不到任何可以明确说明它的东西,因此我的问题是——我想确保我没有错过任何技巧。
使用 DataContractSerializer 或 XmlSerializer,有什么方法可以更改 pulic 属性的序列化方式?我有一个属性,它是一个Enum
,我希望它被序列化为一个int
,以便它的值通过网络发送,而不是它的值的文本表示形式。是否可以使用属性来做到这一点,还是我必须编写自己的序列化程序?
谢谢 :)
c# - DataContractSerializer 如何写入私有字段?
我了解 XMLSerializer 如何通过使用反射来确定应该使用哪些公共读/写字段或属性来序列化或反序列化 XML。然而 XMLSerializer 要求这些字段是公共的并且是读/写的。
但是,DataContractSerializer 能够从类中的完全私有字段读取或写入。所以我想知道如果没有明确地赋予 DataContractSerializer 对我的类的额外访问权限,这怎么可能实现。
wcf - WCF 序列化 - 更多信息
我读了一些微软文章。他们解释了 WCFDataContractSerializer
用于序列化。但是这些文章没有解释为什么 DataContractSerializer 比 XmlSerialization 更受欢迎。谁能给我额外的信息?