草庐IT

Serialization

全部标签

c# - ShouldSerialize*() 与 *指定的条件序列化模式

我知道ShouldSerialize*模式和*Specified模式以及它们是如何工作的,但是两者之间有什么区别吗?当某些事情应该有条件地序列化时,使用一种方法与另一种方法是否有任何“问题”?这个问题针对XmlSerializer的用法,但也欢迎有关此主题的一般信息。关于这个主题的信息很少,所以可能是因为它们执行完全相同的目的,这是一种风格选择。但是,.NET实现者会通过反射分析类并查找任一/两种模式以确定生成的序列化程序的行为方式,这似乎很奇怪,因为它会减慢序列化程序的生成速度,除非它只是向后兼容的工件。编辑:对于那些不熟悉这两种模式的人,如果*Specified属性(propert

c# - 按流血/引用/值(value)编码?

我听说过marshalbyreference、marshalbybleed和marshalbyvalue。这3者之间到底有什么区别?我知道在跨应用程序域/序列化传输数据时会使用这些,但仅此而已。 最佳答案 不同形式的编码(marshal)处理用于描述对象通过正常函数调用在AppDomain实例之间传递时的行为方式。AppDomain通常被称为轻量级进程,它为托管对象在其中运行提供了一个隔离的容器。以下是不同类型的快速分割通过引用编码所有派生自MarshalByRefObject的类型都将按引用编码。这些对象实例不会在AppDomai

c# - 按流血/引用/值(value)编码?

我听说过marshalbyreference、marshalbybleed和marshalbyvalue。这3者之间到底有什么区别?我知道在跨应用程序域/序列化传输数据时会使用这些,但仅此而已。 最佳答案 不同形式的编码(marshal)处理用于描述对象通过正常函数调用在AppDomain实例之间传递时的行为方式。AppDomain通常被称为轻量级进程,它为托管对象在其中运行提供了一个隔离的容器。以下是不同类型的快速分割通过引用编码所有派生自MarshalByRefObject的类型都将按引用编码。这些对象实例不会在AppDomai

c# - 序列化实现 INotifyPropertyChanged 的​​类的实例时出现 SerializationException

我正在尝试序列化我类(class)的一个领域。没有它序列化很好,有它一个getSerializationException。字段是:privatereadonlyObservableCollectionValues;异常(exception)是TypeSystem.ComponentModel.PropertyChangedEventManagerinassemblyWindowsBase,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35isnotmarkedasserializable.我的目标是Frame

c# - 序列化实现 INotifyPropertyChanged 的​​类的实例时出现 SerializationException

我正在尝试序列化我类(class)的一个领域。没有它序列化很好,有它一个getSerializationException。字段是:privatereadonlyObservableCollectionValues;异常(exception)是TypeSystem.ComponentModel.PropertyChangedEventManagerinassemblyWindowsBase,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35isnotmarkedasserializable.我的目标是Frame

c# - JSON 中的 ASP.NET Web API 日期格式未成功序列化

全部,我们正在使用ASP.NETWebAPI,其中我们有一个基于REST的服务,使用JSON作为有效负载。如果我将以下日期作为字符串传递,例如sampleObj:{...myDate:"31/12/201100:00:00",...}作为JSON负载中的属性值,日期属性被反序列化为DateTime.MinValue。字符串格式是否有效?我们知道格式“2012-10-1707:45:00”可以成功连载,但我们不能保证收到的所有日期都采用这种格式。什么是有效选项? 最佳答案 在ASP.NETWebAPI中,您可以通过JsonFormat

c# - JSON 中的 ASP.NET Web API 日期格式未成功序列化

全部,我们正在使用ASP.NETWebAPI,其中我们有一个基于REST的服务,使用JSON作为有效负载。如果我将以下日期作为字符串传递,例如sampleObj:{...myDate:"31/12/201100:00:00",...}作为JSON负载中的属性值,日期属性被反序列化为DateTime.MinValue。字符串格式是否有效?我们知道格式“2012-10-1707:45:00”可以成功连载,但我们不能保证收到的所有日期都采用这种格式。什么是有效选项? 最佳答案 在ASP.NETWebAPI中,您可以通过JsonFormat

c# - 序列化 FixedDocument 时出现 FileFormatException

当将FixedDocument序列化为XPS时,我有时会收到FileFormatException告诉我字体格式(我假设)不符合预期的文件格式规范(请参阅下面的异常)。神秘的部分是:异常只会偶尔发生一次它只会对某些FontFamily/Style/Weight组合发生(斜体和粗体的SegoeUI似乎会触发它)有人知道为什么会发生这种情况吗(特别是为什么它不会持续发生,而只是在不可预测的时间间隔内发生)?以下最小可重现示例将在每次运行时触发大约4到5次异常(在我的Windows10计算机上,发生在.NET4、4.6.1等中):privatevoidTestXpsSerialization

c# - 序列化 FixedDocument 时出现 FileFormatException

当将FixedDocument序列化为XPS时,我有时会收到FileFormatException告诉我字体格式(我假设)不符合预期的文件格式规范(请参阅下面的异常)。神秘的部分是:异常只会偶尔发生一次它只会对某些FontFamily/Style/Weight组合发生(斜体和粗体的SegoeUI似乎会触发它)有人知道为什么会发生这种情况吗(特别是为什么它不会持续发生,而只是在不可预测的时间间隔内发生)?以下最小可重现示例将在每次运行时触发大约4到5次异常(在我的Windows10计算机上,发生在.NET4、4.6.1等中):privatevoidTestXpsSerialization

c# - 使用 DataContractJsonSerializer 将数组值反序列化为 .NET 属性

我在Silverlight4中使用DataContractJsonSerializer并想反序列化以下JSON:{"collectionname":"Books","collectionitems":[["12345-67890",201,"BookOne"],["09876-54321",45,"BookTwo"]]}进入如下类:classBookCollection{publicstringcollectionname{get;set;}publicListcollectionitems{get;set;}}classBook{publicstringId{get;set;}pub