草庐IT

Serialization

全部标签

c# - XmlSerializer 和 BinaryFormatter 之间有什么区别

上周我花了很多时间进行连载。在那段时间里,我发现了许多使用BinaryFormatter或XmlSerializer的示例。不幸的是,我没有找到任何示例来全面详细说明两者之间的区别。我的好奇心在于为什么BinaryFormatter能够直接反序列化为接口(interface),而XmlSerializer却不能。JonSkeet在对“castingtomultiple(unknowntypes)atruntime”的回答中提供了一个接口(interface)的直接二进制序列化示例。StanR.在他对“XMLObjectDeserializationtoInterface”的回答中为我提

c# - 使用 JSON.NET 返回 ActionResult

这个问题在这里已经有了答案:Json.NetAndActionResult(2个答案)关闭5年前。我正在尝试编写一个C#方法来序列化模型并返回JSON结果。这是我的代码:publicActionResultRead([DataSourceRequest]DataSourceRequestrequest){varitems=db.Words.Take(1).ToList();JsonSerializerSettingsjsSettings=newJsonSerializerSettings();jsSettings.ReferenceLoopHandling=ReferenceLoopH

c# - 使用 JSON.NET 返回 ActionResult

这个问题在这里已经有了答案:Json.NetAndActionResult(2个答案)关闭5年前。我正在尝试编写一个C#方法来序列化模型并返回JSON结果。这是我的代码:publicActionResultRead([DataSourceRequest]DataSourceRequestrequest){varitems=db.Words.Take(1).ToList();JsonSerializerSettingsjsSettings=newJsonSerializerSettings();jsSettings.ReferenceLoopHandling=ReferenceLoopH

c# - 非序列化属性

当我写这样的代码时[XmlIgnore][NonSerialized]publicListparamFiles{get;set;}我收到以下错误:Attribute'NonSerialized'isnotvalidonthisdeclarationtype.Itisonlyvalidon'field'declarations.如果我写[field:NonSerialized]我收到以下警告'field'isnotavalidattributelocationforthisdeclaration.Validattributelocationsforthisdeclarationare'p

c# - 非序列化属性

当我写这样的代码时[XmlIgnore][NonSerialized]publicListparamFiles{get;set;}我收到以下错误:Attribute'NonSerialized'isnotvalidonthisdeclarationtype.Itisonlyvalidon'field'declarations.如果我写[field:NonSerialized]我收到以下警告'field'isnotavalidattributelocationforthisdeclaration.Validattributelocationsforthisdeclarationare'p

c# - 在 C# 中将 XML 反序列化为对象

所以我的xml看起来像这样:#{id}#{name}#{description}#{project_id}#{milestone_id}#{position}#{private}#{tracked}.........我将如何使用.NET的序列化库将其反序列化为C#对象?目前我正在使用反射,并且我使用命名约定在xml和我的对象之间进行映射。 最佳答案 为每个元素创建一个类,每个元素都有一个属性,每个子元素都有一个对象列表或数组(使用创建的对象)。然后在字符串上调用System.Xml.Serialization.XmlSerializ

c# - 在 C# 中将 XML 反序列化为对象

所以我的xml看起来像这样:#{id}#{name}#{description}#{project_id}#{milestone_id}#{position}#{private}#{tracked}.........我将如何使用.NET的序列化库将其反序列化为C#对象?目前我正在使用反射,并且我使用命名约定在xml和我的对象之间进行映射。 最佳答案 为每个元素创建一个类,每个元素都有一个属性,每个子元素都有一个对象列表或数组(使用创建的对象)。然后在字符串上调用System.Xml.Serialization.XmlSerializ

c# - 将对象序列化为 XElement 并在内存中反序列化

我想将一个对象序列化为XML,但我不想将它保存在磁盘上。我想将它保存在XElement变量中(用于LINQ),然后反序列化回我的对象​​。我该怎么做? 最佳答案 您可以使用这两个扩展方法在XElement和您的对象之间进行序列化和反序列化。publicstaticXElementToXElement(thisobjectobj){using(varmemoryStream=newMemoryStream()){using(TextWriterstreamWriter=newStreamWriter(memoryStream)){va

c# - 将对象序列化为 XElement 并在内存中反序列化

我想将一个对象序列化为XML,但我不想将它保存在磁盘上。我想将它保存在XElement变量中(用于LINQ),然后反序列化回我的对象​​。我该怎么做? 最佳答案 您可以使用这两个扩展方法在XElement和您的对象之间进行序列化和反序列化。publicstaticXElementToXElement(thisobjectobj){using(varmemoryStream=newMemoryStream()){using(TextWriterstreamWriter=newStreamWriter(memoryStream)){va

c# - 使用 json.net 反序列化没有类型信息的多态 json 类

这Imgurapi调用返回一个列表,其中包含以JSON表示的GalleryImage和GalleryAlbum类。我看不出如何使用Json.NET自动反序列化这些,因为没有$type属性告诉反序列化器要表示哪个类。有一个名为“IsAlbum”的属性可用于区分两者。This问题似乎显示了一种方法,但它看起来有点像hack。我该如何反序列化这些类?(使用C#、Json.NET)。示例数据:图库图片{"id":"OUHDm","title":"Mymostrecentdrawing.Spentover100hours.",..."is_album":false}图库相册{"id":"lDRB