草庐IT

序列号

全部标签

c# - XML(反)序列化无效字符串在 C# 中不一致?

在C#(.net4.0和4.5/vs2010和vs12)中,当我使用XMLSerializer序列化包含具有非法字符的字符串的对象时,不会抛出任何错误。但是,当我反序列化该结果时,会抛出“无效字符”错误。//addtoXMLItemsitems=newItems();items.Item="\vhelloworld";//contains"illegal"character\v//variablesSystem.Xml.Serialization.XmlSerializerserializer=newSystem.Xml.Serialization.XmlSerializer(type

c# - 有 CSV 序列化器这样的东西吗? (类似于 XmlSerializer)

我正在研究CSV文件的序列化和反序列化,我想知道是否存在一个概念类似于XmlSerializer的现有库,它可以声明性地定义对象并将它们序列化到文件或流或从文件或流中序列化(反序列化)。我环顾四周,但没有发现任何专注于序列化的东西。我已经有了非常可靠的代码来根据RFC4180解析CSV文档,但真正有用的是序列化部分。我不寻找的只是一个解析器、使用String.Split()的建议等。是否有现有项目,或者我应该构建一个?额外的礼仪问题:如果我最终推出了自己的序列化程序,用指向codeplex项目的链接来回答这个问题是否合适? 最佳答案

c# - 在不重新评估序列的情况下获取 IObservable 中的前一个元素

在IObservable序列中(在ReactiveExtensionsfor.NET中),我想获取前一个元素和当前元素的值,以便我可以比较它们。我在网上找到了一个类似于下面的示例来完成任务:sequence.Zip(sequence.Skip(1),(prev,cur)=>new{Previous=prev,Current=cur})它工作正常,只是它对序列求值两次,我想避免这种情况。您可以看到使用此代码对其进行了两次评估:vardebugSequence=sequence.Do(item=>Debug.WriteLine("Retrievedanelementfromsequence

c# - 在 WebAPI 中对模型使用可序列化属性

我有以下场景:我正在使用WebAPI并根据模型将JSON结果返回给消费者。我现在有额外的要求将模型序列化为base64,以便能够将它们保存在缓存中和/或将它们用于审计目的。问题是,当我将[Serializable]属性添加到模型以便将模型转换为Base64时,JSON输出更改如下:模型:[Serializable]publicclassResortModel{publicintResortKey{get;set;}publicstringResortName{get;set;}}如果没有[Serializable]属性,JSON输出为:{"ResortKey":1,"ResortNam

c# - 将嵌套的 JSON 反序列化为 C# 对象

我正在从如下所示的API中获取JSON:{"Items":{"Item322A":[{"prop1":"string","prop2":"string","prop3":1,"prop4":false},{"prop1":"string","prop2":"string","prop3":0,"prop4":false}],"Item2B":[{"prop1":"string","prop2":"string","prop3":14,"prop4":true}]},"Errors":["String"]}我已经尝试了几种方法来在C#对象中表示此JSON(太多无法在此处列出)。我尝试过使

c# - 序列化json时如何忽略JsonProperty(PropertyName = "someName")?

我有一些使用ASP.NetMVC的C#代码,它使用Json.Net来序列化一些DTO。为了减少负载,我使用[JsonProperty(PropertyName="shortName")]属性在序列化期间使用较短的属性名称。当客户端是另一个.Net应用程序或服务时,这非常有效,因为反序列化将对象层次结构重新组合在一起,使用更长更友好的名称,同时保持较低的实际传输负载。当客户端通过浏览器使用javascript/ajax时,问题就出现了。它发出请求,并获取json...但json使用的是缩短的不太友好的名称。如何让json.net序列化引擎以编程方式忽略[JsonProperty(Prop

c# - List<T> 的 XML 序列化 - XML 根

关于Stackoverflow(.Net2.0)的第一个问题:所以我试图返回一个包含以下内容的XML列表:publicXmlDocumentGetEntityXml(){StringWriterstringWriter=newStringWriter();XmlDocumentxmlDoc=newXmlDocument();XmlTextWriterxmlWriter=newXmlTextWriter(stringWriter);XmlSerializerserializer=newXmlSerializer(typeof(List));Listparameters=GetAll();

c# - 修改序列化 ASP.NET WebAPI 对象中的 xml 数组元素名称

在我的WebAPIController中返回对象列表时,我一直在努力输出自定义根xml元素。我的Controller方法看起来像这样:publicListGet(){returnrepository.GetProducts();}它会像这样呈现一个xml输出:Product1Product2我要改至但还没有找到这样做的方法。我尝试了DataContract的不同变体和DataMember属性无效。有谁知道除了包装我的List是否有办法做我想做的事?新类中的对象并返回它? 最佳答案 我知道您不喜欢包装器的想法,但有一种解决方案在某种程

c# - 有没有办法覆盖 DataContractJsonSerializer 序列化日期的方式?

有没有办法改变DataContractJsonSerializer序列化日期的方式?目前,它会将日期转换为如下形式:{"date":"/Date(1260597600000-0600)/"}我宁愿将它序列化为自1970年utc以来的毫秒数。这样,​​其他语言可以轻松处理json数据。 最佳答案 不,序列化程序本身没有钩子(Hook)可以做到这一点。但是您可以使用一些序列化回调来实现相同的行为。您将创建另一个数据成员(字符串类型),并且在数据被序列化之前,将调用[OnSerializing]回调来复制DateTime字段的值到弦一。关

c# - 在不标记成员的情况下使用 ProtoBuf.NET 进行序列化

我在某处读到ProtoBuf.NET作者的评论:Thereareoptionstoautomaticallyinferthenumbers,butthatisbrittleandnotrecommended.Onlyusethisifyouknowyouneverneedtoaddmoremembers(itordersthemalphabetically,soaddinganewAardvarkCountwillbreakeverything).这正是我感兴趣的那种情况:)我有一些类似于map-reduce场景的东西,我想使用ProtocolBuffer(例如map-reduce的“