问题标签 [deserialization]

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 回答
394 浏览

c# - 等效于 Java 中的 C# OnDeserialized/OnSerializaed?

是否有等效于 Java 中的 C# [OnSerialized] 和 [OnDeserialized] 属性?

0 投票
3 回答
8144 浏览

c# - C# 自定义序列化/反序列化以及 DeflateStreams

我正在尝试对对象进行自定义序列化/反序列化以及使用 DeflateStreams 压缩/解压缩序列化数据。我最初是为更复杂的对象执行此操作,但为了找出问题而将其删减,但它仍然存在,因此变得更加令人费解。这是要序列化/反序列化的类:

这是应该序列化它的代码(这似乎有效):

这是反序列化:

现在,问题。反序列化会引发 SerializationException 并显示消息 {"No map for object '201326592'."} 我不知道如何排除故障或找出导致问题的确切原因。当我在同一个 MemoryStream 上运行 BinaryFormatter 的 Serialize 和 Deserialize 方法时,非常基本的序列化工作。

我尝试从这两种方法中删除 DeflateStream 的东西,但它仍然是同样的问题。当我查看 MSDN 和其他地方的示例时,看起来我做得恰到好处,并且谷歌搜索异常消息并没有给出任何有意义的结果(或者我可能只是不擅长搜索)。

PS。如您所见,我使用 Miscellaneous.CopyStream(src, dest) 这是一个基本的流复制器,因为我根本无法让 src.CopyTo(dest) 工作,因此也欢迎任何提示。

如果您想更仔细地查看它,下面是整个 VS2010 项目的链接: http ://www.diredumplings.com/SerializationTesting.zip

更新:

The_Smallest:我尝试使用您在我的序列化中发布的 Compress 方法:

但是,它似乎给我带来了与之前 srcStream.CopyTo(destStream) 相同的问题,即它似乎没有被写入流中。当我尝试将其保存到磁盘时,结果是一个 0 kb 的文件。有任何想法吗?

Pieter:我从反序列化方法中删除了 MemoryStream,它似乎具有与以前相同的功能。但是我不确定如何按照您建议的方式实现序列化。这是你的想法吗?

感谢你们俩!

0 投票
1 回答
938 浏览

json - 如何将 Activator.CreateInstance 与列表一起使用使用 DataContractJsonSerializer 反序列化 json 时

我正在反序列化这个 json 字符串:

代表项目的类是:

请注意,在 MyClass 的默认构造函数中,我为“_dtcreate”设置了默认值。

因此,我使用此代码将 json 反序列化为 T 数组:

当我反序列化一个 json 字符串时,我在反序列化的数组中找不到属性“_dtcreate”。

我认为 DataContractJsonSerializer 不使用 MyClass 的默认构造函数。

我可以使用

为属于数组“gType”的所有对象创建一个实例,以确保我的反序列化列表中的所有对象都是使用我的 T 类的默认构造函数创建的?

太感谢了!

0 投票
1 回答
6674 浏览

wpf - WPF BitmapImage 序列化/反序列化

我一直在尝试序列化和反序列化 BitmapImages。我一直在使用我在这个线程中发现的据说可以工作的方法:我的 byte[] 到 WPF BitmapImage 转换中的错误?

只是为了迭代正在发生的事情,这是我的序列化代码的一部分:

这是反序列化代码:

另外,我不确定这是否重要,但早些时候当我填充我的字典时,我使用 PngBitmapEncoder 对位图进行编码以将它们放入 BitmapImages。所以不确定双重编码是否与它有关。这是执行此操作的方法:

所以问题是,序列化和反序列化工作正常。没有错误,并且字典中的条目似乎是 BitmapImages,但是当我在调试模式下查看它们时,它们的宽度/高度和其他一些属性都设置为“0”。当然,当我尝试显示图像时,什么也没有显示。

那么关于为什么它们没有正确反序列化的任何想法?

谢谢!

0 投票
3 回答
13339 浏览

c++ - 向量初始化向量

我很难理解如何初始化向量向量。

typedef 向量<向量<向量<向量<浮点数>>>>数据容器;

我希望这符合

解决元素不是问题。那应该像这样简单

问题是我需要用文件中乱序的数据填充它,以便需要放置连续的项目,例如

所以我需要事先初始化V的V。

我是在自我安慰还是这很简单

这似乎不应该工作。不知何故,必须首先初始化顶级向量。

任何帮助表示赞赏。我相信这一定比我想象的要简单。

0 投票
3 回答
3096 浏览

java - 为什么我的对象没有正确反序列化?

我有一个非常简单的类层次结构:

当我创建一个 LongIdDropdownOption 的新实例时,它确实实现了 Serializable;序列化它;然后立即反序列化它——然后反序列化对象的两个字段都设置为空:

当我使基类实现 Serializable 时,代码开始正常工作。我的问题是……为什么?

0 投票
1 回答
5326 浏览

c# - 数组的反序列化总是给出一个空数组

我有一个自定义抽象基类,其中包含我使用 ISerializable 使其可序列化/可反序列化的子类。当我对此类的子类的单个实例进行序列化/反序列化时,一切正常。然而,当我做一个数组时,我总是在反序列化时得到一个空数组。序列化是使用 BinaryFormatter 完成的。

这些项目包含在一个:

在序列化时,这是在 SerializationInfo 参数的 GetObjectData 中完成的:

在反序列化时,这也是在序列化构造函数中的 SerializationInfo 参数上完成的:

反序列化总是给我一个空数组,正如我之前提到的,使用这段代码可以很好地序列化和反序列化单个项目:

序列化(GetObjectData 方法):

反序列化(序列化构造函数):

这是个常见的问题吗?至少我似乎没有发现任何其他人遇到它。希望有一个解决方案:) 如果我需要为您提供更多信息/代码,请告诉我。

谢谢!

0 投票
1 回答
174 浏览

silverlight - 在 Silverlight 中,将自定义属性添加到生成的 Linq 类 + 管理事件

我在 WCF 中使用 Linq to SQL 类。这些类从 WCF 方法返回给 Silverlight。现在,我想在生成的类(Silverlight 端)上添加一个自定义属性,并根据来自另一个属性的另一个 PropertyChangedEvent 在该特定属性上触发一个 PropertyChangedEvent。为了清楚起见,这是一段不起作用的代码:

问题是New()中的代码永远不会执行,所以我永远不知道ConnectionType什么时候改变,所以我无法触发ConnectionTypeEnum上的PropertyChanged。(此属性用于单向绑定,所以我需要它)

有人对此有解决方案吗?

谢谢

0 投票
2 回答
728 浏览

c# - 反序列化对象后如何创建用于加载 XML 文件的 XDocument 实例?

我正在开发window phone 7 应用程序。我是 windows phone 7 应用程序的新手。我指的是 XML 序列化和反序列化的以下链接。

http://www.codeproject.com/KB/windows-phone-7/wp7rssreader.aspx

在上面的链接中,LoadFromIso() 函数用于 XML 反序列化。我想在上面的链接中反序列化后加载 xml 文件。在简单的一种情况下,我们可以按照以下代码执行此操作。类似于下面的代码,我想要上面链接中的“doc”。在下面的代码中,我们可以使用带有以下语句的 LINQ to XML 对 XML 文件执行各种操作

完整代码如下

以类似的方式,我希望在反序列化对象后创建 XDocument 的实例,以便我可以使用 LINQ to XML 对 XML 文件执行各种操作。您能否提供任何代码或链接,通过它我可以获得 XDocument 的实例,以便我可以加载 XML 文件并使用 LINQ to XML 对 XML 文件执行各种操作?

0 投票
4 回答
266 浏览

c# - 是否可以记录序列化从 Web 服务返回的对象所需的时间?

我们正在查看我们正在调用的 Web 服务的一些性能问题。我已经设法在整个实际的 web 服务方法本身中放置时间记录代码,但现在看起来序列化结果集所需的实际时间可能是一个问题?

所以我希望记录序列化这些数据需要多长时间,但我正在努力获得任何结果..

这是我们拥有的示例 Web 服务方法:

我已经尝试过,在返回的类中放置用 [OnSerializing()] 和 [OnSerialized()] 属性装饰的方法,但这不起作用。我还尝试通过使用 try..finally 块来捕获该方法中的时间,但不认为这也记录了实际的序列化时间吗?

有人建议我可能必须实现自己的序列化程序(它只会记录时间然后调用默认的序列化程序),但只是想知道这是否是我唯一的选择?

任何想法都非常感谢。