Tag: serialization

使用dot.net c#序列化和反序列化XML

我花了几个小时的时间来阅读以下代码,看了很多似乎过时或看起来似乎没有工作的代码。 如果它对任何人的任何帮助是最终的工作代码。 如果可以改进,可以免费评论:-) public class SerializationHelper { #region static string SerializeObject( T obj, Encoding encoding ) /// /// Serialize an [object] to an Xml String. /// /// Object Type to Serialize /// Object Type to Serialize /// System.Text.Encoding Type /// Empty.String if Exception, XML string if successful /// /// // UTF-16 Serialize /// string xml […]

序列化包含BitmapImage的类的方法:使用2inheritance的类?

当我的应用程序关闭时,我想序列化一些数据,使其在下次使用应用程序时持久化。 我选择使用Newtonsoft.JsonConverter序列化这些数据。 但是,我的class级中有一个BitmapImage,它无法序列化。 我有点困惑于此,因为我没有找到一个解决方案来保持我的BitmapImage进入我的类(我需要保留它)并能够序列化这个类。 我试图创建一个包含BitmapImage的inheritance类,但我不允许从我的基类创建一个隐式运算符。 我想在我的类中有一个对象,它可以用作Image绑定的源,并且能够序列化这个类。

C#base64编码/解码与对象序列化问题

我正在使用C#中的序列化和反序列化来实现我的项目(这是一个类)。 它们被序列化并保存到XML文件中。 加载项目时,一切顺利。 现在我正在尝试将序列化项目编码为Base64,然后保存文件,这也很顺利。 该文件的第一行(编码之前!)如下所示: 当我解码文件时,有一个? 在行前添加: ? 我用来编码的代码: byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode); string returnValue = System.Convert.ToBase64String(toEncodeAsBytes); return returnValue; 和解码代码: byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData); string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes); return returnValue; 这可以是什么,我该如何解决这个问题?

构造函数中的C#默认值与两个用于序列化的构造函数相同

当我为构造函数提供默认值时 public MyClass(string description = null) { …. } 这相当于 public MyClass() { …. } public MyClass(string description) { …. } 在序列化方面 。 换句话说,是否可以使用默认构造函数 ? 实际上它是,但是当我使用序列化时,我会遇到一些问题吗?

DataContractJsonSerializer跳过具有空值的节点

我正在使用DataContractJsonSerializer将我的自定义对象序列化为JSON。 但我想跳过值为null的数据成员。 如果DataMember为null ,则该节点不应包含JSON字符串。 我怎样才能做到这一点? 给我一个简单的code snippet来使用。

C#中的“默认”序列化序列化静态字段吗?

“默认”是指只使用类上的[Serializable]属性。 我想说不,静态字段不会被序列化,但我不完全确定。

json.net不会从派生类序列化属性

我正在使用JSON.NET 6.0.1。 当我使用SerializeObject方法序列化派生类的对象时,它仅从基类序列化属性。 这是代码片段: string v = JsonConvert.SerializeObject( service, Formatting.Indented, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }); 基类: [DataContract] public abstract partial class DataEntity : IDataEntity, INotifyPropertyChanging, INotifyPropertyChanged { … } 派生类: [Table(Name = “dbo.mytable”)] public sealed class mytable : DataEntity { … } 我错过了什么吗?

通过属性在(反)序列化期间控制枚举值格式

问题 假设我有一个表示某事或其他内容的枚举: public enum ResultState { Found, Deleted, NotFound } 在我的序列化json中,我希望这些值分别被序列化为”found” , “gone”或”not_found” 。 (注意:这不是 camelCase,而是完全自定义的字符串!) 我正在使用JSON.NET 迄今为止的故事 我的一切工作都差不多 – 枚举通过StringEnumConverter全局转换为字符串,但是我不能在生活中看到如何实现与上面类似的东西。 我最初的想法是将JsonProperty(…)属性应用于相关的枚举值,但这似乎不起作用! 潜在解决方案 我能想到的唯一方法是编写自己的inheritance自StringEnumConverter ,但是还有一些额外的魔法可以处理我创建的新JsonName属性。 正如您可能想象的那样,我不喜欢这个想法。 我想知道你是不是很棒的人可以建议一个更简单的选择?

XML对象反序列化到接口

我有两个类SccmAction和TicketAction,它们都实现了接口IDelivery。 这些类将在一个处理队列上传输,我只想从中获取消息并根据Deliver方法进行操作。 但是,我似乎无法反序列化到接口,因为当我尝试这样做时会抛出System.NotSupportedException 。 从我收集的内容来看,XMLSerializer需要一个具体的序列化类型。 这是否让我不得不创建一个实现IDelivery并从中inheritanceSccmAction和ArsAction的抽象类? 我错过了什么吗? 编辑进一步说明 我可能有一个设计缺陷,但我的目的是从包含这些对象的队列中提取消息。 我的目的是让所有离开此队列的对象实现接口,确保处理对象的应用程序只对Deliver方法进行操作。 Deliver的每个对象实现都会有所不同。 要反序列化的代码 using (SqlConnection connection = new SqlConnection(ConnectionString)) { SqlCommand command = new SqlCommand(ReceiveString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { byte[] sb = (byte[])reader[“message_body”]; SccmAction sa = DeserializeObject(sb); IDelivery iD = DeserializeObject(sb); } reader.Close(); } public static T DeserializeObject(byte[] ba) { XmlSerializer […]

C#序列化对象集合

我正在开发一个ASP.NET应用程序,它具有一个inheritance自定义对象列表的类。 public class UserRoleList : List { public UserRoleList() { } } 如何在C#中使这个类可序列化?