问题标签 [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 回答
1446 浏览

wcf - WCF 服务返回的对象层次结构与预期不同

0 投票
1 回答
1327 浏览

c# - 如何序列化基本类型的集合并在易于阅读的 XML 中查看具体类型

我有一个列表,其中填充了各种具体类型的对象,这些对象是 BaseType 的子类

我正在使用 WCF DataContractSerializer

有没有办法让它生成

?

真正的目标是让用户生成一些 XML 以加载到内存中,并且用户的技能水平要求他们提供原始 XML 是不会成功的。

0 投票
1 回答
258 浏览

c# - 有没有办法在第三方类型上创建 WCF DataContract?

我正在迁移到 wcf 并试图弄清楚我将如何正确声明我的数据合同。我一直在远程处理的某些类型来自第三方,我无法更改。属性是在 wcf 中显式声明数据协定的唯一方法吗?我知道 3.5 中的自动数据合同功能,但我正在阅读的书籍不鼓励这样做。此外,这种方式假设所有状态都是公开可用的,但通常情况并非如此。

0 投票
1 回答
341 浏览

wcf - PostSharp 使用 DataContractSerializer 时?

我有一个在类上实现 INotifyPropertyChanged 的​​方面。该方面包括以下内容:

当我正常实例化类时,这工作正常,但是当我使用 DataContractSerializer 反序列化类时遇到问题。这绕过了构造函数,我猜这会干扰 PostSharp 设置自己的方式。这最终导致在拦截的属性设置器中出现 NullReferenceException,但在它调用自定义 OnPropertySet 之前,所以我猜它会干扰设置 LocationInterceptionArgs。

有没有其他人遇到过这个问题?有没有办法解决它?


我做了一些更多的研究,发现我可以通过这样做来解决这个问题:

我想,好吧,这还不错,所以我尝试在我的方面做到这一点:

不幸的是,即使它正确地拦截了该方法,它也不起作用。我认为对 InitializeCurrentAspects 的调用没有正确转换,因为它现在位于 Aspect 内部,而不是直接位于方面增强类内部。有没有一种方法可以让我完全自动化,这样我就不必担心在我想要拥有 Aspect 的每个类上调用它?

0 投票
2 回答
2733 浏览

c# - 使用 DataContractSerializer 时设置属性的初始值

如果我正在序列化并稍后反序列化一个类,DataContractSerializer我该如何控制未序列化的属性的初始值?

考虑下面的Person课程。它的数据契约被设置为序列化FirstNameandLastName属性而不是IsNew属性。我想IsNew将一个新的 Person 实例化为新实例还是从文件中反序列化,我想初始化为 TRUE。

这很容易通过构造函数完成,但据我所知,它DataContractSerializer不会调用构造函数,因为它们可能需要参数。

0 投票
1 回答
792 浏览

f# - F# DataContractJsonSerializer StackOverflowException

是一个包含 50,000 条记录的列表(实际上更多,但让我们从小处开始)。我正在尝试序列化为 JSON 文件:

并且得到了臭名昭著的 StackOverflowException。准确地说:

FSharp.Core.dll 中出现“System.StackOverflowException”类型的未处理异常

有什么建议吗?

0 投票
1 回答
1360 浏览

c# - 使用 DCS 的 MessageContract 序列化

有没有办法使 DataContractSerializer 序列化的[MessageContract]方式与通过 SOAP 传输时出现的方式相同?

我有一个类在 WCF 调用的线路上显示如下:

p>

使用 DCS 进行序列化时,如下所示:

p>

我确信这种不一致是因为我的类被标记为消息合约而不是数据合约:

p>

有没有办法让 DCS 序列化消息,就像 WCF 在创建 SOAP 消息时所做的那样?

0 投票
2 回答
1200 浏览

silverlight - Silverlight:DataContractSerializer 无法处理只读集合属性

对于我们的 Silverlight 项目 (SL4),我使用了一个可能包含列表 ( IList<AnotherModel>) 的模型。根据良好实践和规则CA2227:CollectionPropertiesShouldBeReadOnly 属性没有IList公共设置器。我们使用正在工作的 DataContractSerializer 序列化模型。但是当我尝试反序列化时,DataContractSerializer 的方法抛出了一个 SecurityException ,抱怨由于缺少公共设置器而无法设置ReadObject(Stream)目标属性(指向该属性)。IList

由于它DataContractSerializer是密封的,既不可扩展也不灵活,所以我目前认为没有机会添加某种额外的规则,这些规则允许反序列化ILists使用 foreach-loop onAdd()方法或其他一些传输集合项的方法。

我还尝试深入DataContractSerializer研究源代码(使用 Reflector)来创建一个小分支,但看起来我必须深入挖掘,并且复制整个序列化类似乎不是一个可行的解决方案。

您是否看到另一个使用 序列化没有公共设置器的列表的机会DataContractSerializer

非常感谢您的想法!


更新
使用 XmlSerializer 解决。


托马斯

0 投票
2 回答
997 浏览

wcf - 枚举、DataContracts 和 WCF 问题

我是 WCF 的新手,有一个简单的问题......

我的 DataContract 类从其公开的方法之一向消费者返回 Enum 类型。

消费者能够看到枚举类型,并实例化该类型的变量。

但是,我没有为服务中的枚举提供 [DataContract] 或 [EnumMember]。

我的问题是,为什么客户仍然能够看到它?我认为我必须将其设为 [DataContract] 才能与业务对象一起序列化,不是吗?

0 投票
1 回答
8153 浏览

c# - 使用 DataContractJsonSerializer 作为 json 数组序列化对象

我有一个包含项目列表的类。我想使用 DataContractJsonSerializer 作为 json 数组将此类的实例序列化为 json。例如。

当序列化为 json 时,它应该是这样的:

[{"Name":"one","Description":"desc1"},{"Name":"two","Description":"desc2"}]