Tag: serialization

使用DataContractSerializer进行自定义序列化

我目前正在为我的DataSet使用包装类,以实现自定义序列化。 我想使用DataContractSerializer (更像是必须使用它)但仍然支持自定义序列化。 问题是[DataContract]和[Serializable]属性看起来并不那么好…我怎么能覆盖序列化,并支持BOTH DataContract和ISerializable序列化? 包装器DataSet类的代码带到这里: [Serializable()] [System.Runtime.InteropServices.ComVisible(false)] public class TestDatasetWrapper : TestDataSet, ISerializable { public TestDatasetWrapper() : base() {} protected TestDatasetWrapper(SerializationInfo info, StreamingContext context) { SerializationHelper.DeserializeTypedDataSet(info, this); } public override void GetObjectData(SerializationInfo info, StreamingContext context) { SerializationHelper.AddTypedDataSetObjectData(info, this); } } 谢谢!

在ProtoBuf-net中序列化字典失败

(注意:字典,其中T是一些ProtoContract / ProtoMembered类工作正常。)这个问题只发生在我的类型对象上。 我试图序列化词典工作字典。 typeof(object)不起作用。 应该是? 我应该实现基于字符串的解决方案吗? 在这种情况下,对象将只是一个.net原语。 [Test] public void De_SerializeObjectDictionary2() { var d = new Dictionary(); d.Add(“abc”, 12); var ms = new MemoryStream(); var model = ProtoBuf.Meta.RuntimeTypeModel.Default; //model.AutoAddMissingTypes = true; //model.AutoCompile = true; //model.InferTagFromNameDefault = true; //model.Add(typeof (object), false); //model.Add(typeof(Int32), true); //model[typeof (object)].AddSubType(50, typeof (Int32)); model.Serialize(ms, d); Serializer.Serialize<Dictionary>(ms, d); // <— No serializer […]

使用Json.net仅将接口属性序列化为JSON

使用像这样的简单类/接口 public interface IThing { string Name { get; set; } } public class Thing : IThing { public int Id { get; set; } public string Name { get; set; } } 如何只使用“Name”属性(仅底层接口的属性)获取JSON字符串? 实际上,当我做到这一点时: var serialized = JsonConvert.SerializeObject((IThing)theObjToSerialize, Formatting.Indented); Console.WriteLine(serialized); 我得到完整的对象为JSON(Id + Name);

C#将通用列表序列化为文件

我有一个类,其中包含有关图片的信息,如filepath,hashvalue,bytes。 在另一个类中,我得到了一个通用列表,其中我放置了包含图片信息的类中的对象。 该类看起来像这样: [Serializable()] class PicInfo : ISerializable { public string fileName { get; set; } public string completeFileName { get; set; } public string filePath { get; set; } public byte[] hashValue { get; set; } public PicInfo() { } public PicInfo(SerializationInfo info, StreamingContext ctxt) { this.fileName = (string)info.GetValue(“fileName”, typeof(string)); this.completeFileName = (string)info.GetValue(“completeFileName”, typeof(string)); […]

C#DataContract序列化,如何反序列化到已存在的实例

我有一个类,它包含所有现有实例的静态字典,这些实例是在编译时定义的。 基本上它看起来像这样: [DataContract] class Foo { private static Dictionary instances = new Dictionary(); [DataMember] private long id; public static readonly Foo A = Create(1); public static readonly Foo B = Create(2); public static readonly Foo C = Create(3); private static Foo Create(long id) { Foo instance = new Foo(); instance.id = id; instances.Add(instance); return instance; […]

EF4 Cast DynamicProxies到底层对象

我正在使用带有POCO模板的Entity Framework 4。 我有一个List,其中MyObject是动态代理。 我想使用XmlSerializer序列化此列表,但我不希望它们序列化为DynamicProxies,而是作为底层POCO对象。 我知道ContextOptions.ProxyCreationEnabled,但我不想使用它。 我只是想知道如何将代理对象转换为它的POCO序列化。

在.NET中序列化MailMessage对象的优雅方法

我目前正在考虑在C#中序列化一个MailMessage对象,尽管网上有一些示例的变体,但它们会序列化为二进制,这种点错过了IMO点。 我的方法是,我想将MailMessage序列化为RFC2822 eml字符串,下面的代码就是我提出的。 public string SerializeEmail(MailMessageArgs e) { string rfc822eml = “”; Guid g = Guid.NewGuid(); lock (g.ToString()) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@”C:\tmpspool”); di.CreateSubdirectory(g.ToString()); string spoolDir = @”C:\tmpspool\” + g.ToString(); SmtpClient Client = new SmtpClient(“localhost”); Client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; Client.PickupDirectoryLocation = spoolDir; Client.Send(e.mailObj); var files = from file in Directory.EnumerateFiles(spoolDir) select file; string serializedEml = […]

C# – 从流中序列化/反序列化DES加密文件

有没有人有任何关于如何将序列化数据加密到文件然后使用DES读回来的例子? 我已经编写了一些不起作用的代码,但我宁愿看到新的尝试而不是追求我的代码。 编辑 :对不起,忘了提到我需要一个使用XmlSerializer.Serialize / Deserialize的例子。

没有注释的Protobuf-net序列化

我查看了这个答案,我处于这样一种情况:我不需要保持向后兼容性,我必须有一个解决方案,无需用protobuf-net所需的属性装饰数十个类。 所以我尝试使用RuntimeTypeModel.Default.InferTagFromNameDefault = true; 但我可能没有正确使用它,因为Serializer.Serialize调用仍然会引发exception,要求签订合同。 这是我的快速测试,我做错了什么? public enum CompanyTypes { None, Small, Big, Enterprise, Startup } public class BaseUser { public string SSN { get; set; } } public class User : BaseUser { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } […]

动态对象序列化

我尝试使用BinaryFormatter序列化DynamicObject类,但是: 输出文件太大,不完全是导线友好的 未处理循环引用(序列化时卡住) 由于序列化DynamicObject本身意味着很少,这里是我尝试序列化的类: [Serializable()] class Entity : DynamicObject, ISerializable { IDictionary values = new Dictionary(); public Entity() { } protected Entity(SerializationInfo info, StreamingContext ctx) { string fieldName = string.Empty; object fieldValue = null; foreach (var field in info) { fieldName = field.Name; fieldValue = field.Value; if (string.IsNullOrWhiteSpace(fieldName)) continue; if (fieldValue == null) continue; this.values.Add(fieldName, […]