草庐IT

序列化和反序列化

全部标签

c# - 如何?类对象的 XML 序列化

我正在尝试序列化一个类对象并将xml存储在一个字符串中,但每次我收到异常消息“生成xml文档时出错”我试图序列化的类对象属于类:[XmlRoot("FlowOfTask")]publicclassFlow{int_CurrHop=0;[XmlElement("CurrentHop")]publicintCurrentHop{get{return_CurrHop;}set{_CurrHop=value;}}int_TotalHops=0;[XmlElement("TotalHops")]publicintTotalHops{get{return_TotalHops;}}privateLi

c# - 根据属性将元素反序列化为属性

我想看看是否有一种简单的方法可以将充满元素的XML文件反序列化回一类属性,特别是将元素属性“名称”作为要附加的属性。例如,我有一个XML文件格式:1test42helloworld我想知道是否有一种简单的方法可以将其反序列化回类似于这种格式的类:publicclassSomeObject{[XmlElement("number_value_one")]publicInt32NumberValueOne{get;set;}[XmlElement("number_value_two")]publicInt32NumberValueTwo{get;set;}[XmlElement("stri

xml - ]]> 序列在 XML 标记的内容中真的不合法吗?

我有一个带有标签的XML文档,其中包含用户输入的消息,我想避免不必要的字符转义。根据下面的链接,唯一严格非法的字符是“Note:Onlythecharacters"http://www.w3schools.com/xml/xml_syntax.asp但在某些解析器中我遇到了序列问题]]>,这是由于解析器的问题还是它真的在XML标准的某处被定义为非法?示例消息:<!------<![CDATA["TEST"]]>Evil如您所见,XMLParsingError:notwell-formed和Theliteralstring']]>'isnotallowed

c# - 如何处理序列化/反序列化 xml 对象时的特殊字符?

我有一些biz对象来存储客户姓名,有时名称包含一些特殊字符,如,.这些名称是从3rd方导入的,我无法从源中删除有趣的字符。应用程序将通过XmlSerializer序列化/反序列化客户对象,但这里奇怪的是,当我用特殊字符序列化名称时,没有错误,结果将是这样的Jim.但是当我反序列化输出的xml时,我会得到一个异常ThereisanerrorinXMLdocument(3,15).那么如何在我的应用程序中处理这些特殊字符呢?谢谢!附上部分测试代码:publicclassCustomer{publicstringName;}classProgram{publicsta

c# - 序列化 List<T> 错误反射(reflect)字段

刚接触xml序列化,找不到我的具体问题。使用这段代码序列化:Humanh=newHuman();XmlSerializerwriter=newXmlSerializer(typeof(Human));System.IO.StreamWriterfile=newSystem.IO.StreamWriter(@"c:\temp\serializerExample.xml");writer.Serialize(file,h);file.Close();获取内部异常:{"Therewasanerrorreflectingfield'_foods'."}人类:publicclassHuman:M

c# - 使用 XmlReader 和 xsd.exe 中的类反序列化 Xml

好吧,我在学习一些教程时遇到了学习XmlSerializer的障碍。我已按照所有建议的步骤进行操作,但我的程序没有返回任何内容,或者返回的是空值。我创建了一个XML文件,如下所示:然后我使用xsd.exe生成.xsd文件,它是:创建模式后,我再次使用xsd.exe为我自动生成类:///[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd","2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute(

c# - 使用 Web Api MVC 4 反序列化嵌套的 XML

我有以下XML,我试图将其反序列化为带有.NetFramework4.5的MVC4WebApi的订单对象......但是当我使用POST从ChromeAdvancedRestClient发送此XML并将Content-Type设置为application/xml服务器上的订单数据为空(如果我发送由WebApi帮助页面生成的示例xml,它似乎确实有效)。如何在不更改原始xml的情况下反序列化它?05/06/14123-4567-8901abc-1234APerson123MainStreetCityvilleAK55555US5555551212aperson@gmail.comAPer

java - JAXB/Jackson XML 通用序列化

我有一个Shape类,和一个Circle和Square子类。然后我有一个Container具有Listshapes的类字段。我正在使用Jackson进行XML序列化,我得到了...但我真正想要的是我试过注释shapes与@XmlElements({@XmlElement(type=Circle.class),@XmlElement(type=Square.class)})...但这只是给了我...所以它几乎是正确的,但是那些包装器很烦人。有什么方法可以得到我想要的东西,即使这意味着更改我的JAXB实现? 最佳答案 其中一个选项是使用

c# - 使用 List<> 将 Xml 字符串反序列化为对象

我正在尝试将xml字符串反序列化为自定义类,但我可以让我的“Riesgo”字段填充asegurado类:28029216MN01/01/2014H37MM34CH4D我尝试了几种方法,但Riesgo中的列表总是为空。publicclassTarificadorObject{[DataContract][Serializable][XmlRoot("xml")]publicclassTarificadorIn{[XmlElement("CodPostal")]publicInt32CodPostal{get;set;}[XmlElement("Canal")]publicInt32Can

c# - 当您不知道命名空间时如何反序列化 XML?

我正在处理一个偶尔会更改我收到的XML上的namespace的API。XML结构保持不变。我需要将XML反序列化为强类型模型。无论XML上的命名空间是什么,如何执行反序列化?我使用的模型是这样的:[Serializable,XmlRoot(ElementName="TestModel",Namespace="http://schemas.datacontract.org/UnknownNamespace1")]publicclassTestModel{publicTestModel(){TestElements=newList();}[XmlElement("TestModelChil