Tag: 序列化

在C#中,你如何单向序列化的非序列化?

通常情况下,我需要序列化一个对象,用于logging或debugging。 这是一个单向序列化 – 我不需要稍后再取出它,我只需要将一个对象转换成一个string,将它写入某处。 是的,是的 – 这就是为什么你应该总是重写ToString方法。 我知道这个。 但是我经常处理我没写的东西,也不能改变。 另外,我不想为每个我写的类编写和更新一个ToString方法。 XML序列化提供了一个看似完美的解决scheme – 只是把这个对象压缩成XML。 但有很多限制,特别是你不能序列化IDictionary,你必须有一个无参数的构造函数。 我可以在课堂上解决这些问题,但是 – 我又经常和其他人一起上课。 那么,获得一个对象的综合string表示的解决scheme是什么? 有什么简单的,我失踪?

“Type not expected”,使用DataContractSerializer – 但它只是一个简单的类,没有有趣的东西?

我重构我的XML序列化,并认为我会尝试DataContractSerializer。 一切顺利,直到它需要序列化这个类: using System; using System.Runtime.Serialization; namespace VDB_Sync.Model { [DataContract(Name="Konstant")] public class Konstant : DataFelt { [DataMember] private MySqlDbType mydataType; [DataMember] private object value; public Konstant(string navn, MySqlDbType dataType, object value) : base(navn, dataType, "*Konstant", false, false) { //this.navn = navn; this.mydataType = dataType; this.value = value; if (navn.Contains("*Løbenummer")) { navn = "*Konstant: " + […]

高性能的序列化:Java vs Google Protocol Buffers vs …?

对于一些caching,我正在考虑为即将到来的项目做些什么,我一直在考虑Java序列化。 也就是说,是否应该使用? 现在我已经写了自定义序列化和反序列化(Externalizable)在过去几年的各种原因。 现在互操作性已经成为一个更大的问题,我可以预见需要与.Net应用程序交互,所以我想到了使用平台无关的解决scheme。 有没有人有高性能使用GPB的经验? 它如何在速度和效率方面与Java的本地串行化进行比较? 或者,还有其他的scheme值得考虑吗?

$ .post和$ .ajax之间的区别?

好奇,如果有人知道与数据参数有什么不同。 我有$.post方法需要一个$('#myform').serialize()作为我的数据参数,并工作。 如果我使用$.ajax()方法尝试相同的方法,它不起作用,因为我的数据参数不正确。 有谁知道区别,我可能会用什么来代替上面的.serialize ?

XmlSerializer和BinaryFormatter有什么区别

上周我花了很长时间来研究系列化。 在那段时间里,我发现很多使用BinaryFormatter或者XmlSerializer的例子。 不幸的是,我没有find全面详细说明两者之间差异的例子。 我的好奇心的起源在于为什么BinaryFormatter能够直接反序列化到一个接口,而XmlSerializer没有。 Jon Skeet在“ 在运行时转换为多个(未知types) ”的答案中提供了一个直接二进制序列化到接口的例子。 Stan R.在“ XML Object Deserialization to Interface ”的回答中为我提供了使用XmlSerializer完成目标的方法。 除了BinaryFormatter的显而易见的利用二进制序列化,而XmlSerializer使用XML我想更充分地了解的基本差异。 什么时候使用其中一种或每种使用的利弊。

在JSON.NET中序列化null

当通过JSON.NET序列化任意数据时,任何属性为null的属性将被写入JSON “propertyName”:null 当然这是正确的。 不过,我有一个要求,自动将所有空值转换为默认的空值,例如空string s应该成为String.Empty ,null int? s应该变成0 ,null bool? 应该是false ,等等。 NullValueHandling没有帮助,因为我不想Ignore空值,但是我也不想Include它们(嗯,新特性?)。 所以我转向实现一个自定义的JsonConverter 。 虽然实现本身是一件轻而易举的事,但不幸的是,这仍然没有工作 – CanConvert()永远不会被调用具有null值的属性,因此也不会调用WriteJson() 。 显然,空值会自动直接序列化为null ,而不需要自定义pipe道。 例如,以下是空string的自定义转换器示例: public class StringConverter : JsonConverter { public override bool CanConvert(Type objectType) { return typeof(string).IsAssignableFrom(objectType); } … public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { string strValue = value as string; if […]

C#JSON将字典序列化为{key:value,…}而不是{key:key,value:value,…}

是否可以使用DataContractJsonSerializer将.Net Dictionary <Key,Value>序列化为JSON,格式为: { key0:value0, key1:value1, … } 我使用Dictionary <K,V>,因为没有预定义的input结构。 我只是为DataContractJsonSerializer结果而感兴趣! 我已经find了一个“Surrogate”的例子,但是输出中还有一个额外的“数据”,如果字典<K,String>是,那么转义也是错误的。 我find了解决scheme,需要什么! 首先,一个可序列化的“字典”类:(当然,这个示例只是以一种方式工作,但是我不需要反序列化) [Serializable] public class MyJsonDictionary<K, V> : ISerializable { Dictionary<K, V> dict = new Dictionary<K, V>(); public MyJsonDictionary() { } protected MyJsonDictionary( SerializationInfo info, StreamingContext context ) { throw new NotImplementedException(); } public void GetObjectData( SerializationInfo info, StreamingContext context ) { foreach( […]

将对象转换为XMLstring

我有一个名为WebserviceType的类,我从工具xsd.exe从XSD文件中获取。 现在我想将一个WebServiceType对象的实例反序列化为一个string。 我怎样才能做到这一点? MethodCheckType对象具有一个WebServiceType数组作为参数。 我第一次尝试就像我序列化:与一个XmlSerializer和一个StringWriter (当序列化我使用了一个StringReader )。 这是我序列化WebServiceType对象的方法: XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType)); MethodCheckType output = null; StringReader reader = null; // catch global exception, logg it and throw it try { reader = new StringReader(path); output = (MethodCheckType)serializer.Deserialize(reader); } catch (Exception) { throw; } finally { reader.Dispose(); } return output.WebService; 编辑: 也许我可以用不同的话来说:另一方面,我已经得到了这个MethodCheckType对象的一个​​实例,我得到了我从中序列化这个对象的XML文档。 现在我想把这个实例转换成一个stringforms的XML文档。 在这之后,我必须certificate两个string(XML文档)是否相同。 […]

使用Qt序列化

我正在用Qt库编程一个GUI。 在我的GUI中,我有一个巨大的std :: map。 “MyType”是一个具有不同types字段的类。 我想序列化std :: map。 我怎样才能做到这一点? Qt是否为我们提供了必要的特性?

我可以序列化匿名types为XML?

我明白,匿名types被编译器标记为私有,属性是只读的。 有没有办法将其序列化为XML(没有反序列化)? 它适用于JSON ,我怎样才能用XML来做到这一点?