草庐IT

c# - 类似于 Json.Net 可以做的 XML 序列化

我有以下控制台应用程序:usingSystem;usingSystem.IO;usingSystem.Xml.Serialization;usingNewtonsoft.Json;namespaceOutputApp{publicclassFoo{publicobjectValue1{get;set;}publicstringValue2{get;set;}}publicclassBar{publicintArg1{get;set;}publicdoubleArg2{get;set;}}classProgram{publicstaticFooCreateFooBar(){returnn

C#:反序列化 XML 文件错误(认为这是一个命名空间问题 - 虽然我一生都无法解决)

我正在反序列化来self们一位客户的网络服务的XML文件。问题是,在使用xsd.exe创建类后,我反序列化文件并得到通常的“XML文档(2,2)中存在错误。”VisualStudio错误。我认为这是第2行,它指向namespace声明:XML文件顶部:MX2009-05-11T09:48:51+01:00SUPPLIER12420317323327108一流:[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd","2.0.50727.42")][System.SerializableAttribute()][System.Diagn

c# - 序列化用内部修饰符声明的类的列表<>?

我正在尝试将XML序列化添加到C#中相当简单的类结构中。本质上,有一个根类的单个实例(称为AClass),它包含一些其他类(称为AnotherClass)的几个实例的列表:[XmlRoot("RootNode")]publicclassAClass{[XmlElement("ListNode")]internalListotherObjects{get;set;}}publicclassAnotherClass{[XmlAttribute("Name")]internalstringname{get;set;}}在序列化时,我希望将这两个类一起序列化-也就是说,如果我序列化AClass

c# - XML反序列化日期时间格式

我有一个Xml元素,需要包含年、月、日、小时、分钟、秒和MS的日期时间稍后我需要通过XMLDeserializer将该Xml元素转换为DateTime对象。我知道日期时间格式转换存在一些问题,我的问题是我应该编写Xml元素的DateTime格式是什么,所以一旦我通过XMLDeserializer反序列化它,我将不会有任何问题转换为DateTime对象我想要这样的答案:{0:MM/dd/yyH:mm:sszzz}或任何其他肯定有效的格式 最佳答案 在内部XmlSerializer使用XmlConvert使用以下格式转换DateTime

c# - .NET 反序列化后 XML 中的对象位置(行、列)

在使用XmlSerializer反序列化为.NET对象后,如何获取xml标记在原始xml文件中的位置?这是一个例子XML4ABCBern3ABCDPragueXML到C#对象的映射[XmlRoot("Root")]publicclassAddressDetails{[XmlElement("Number")]publicintHouseNo;[XmlElement("Street")]publicstringStreetName;[XmlElement("CityName")]publicstringCity;}想要的结果XmlSerializerserializer=newXmlSe

c# - 反序列化

我有以下xml文件。val1val2val3val4我想将其反序列化为一个类,并且我想使用创建的类的对象访问它们。我正在使用C#。我能够反序列化并将值放入类'a的对象中’(标签)。但是如何访问的值从这个对象?我做了以下编码:[Serializable()][XmlRoot("a")]publicclassa{[XmlArray("a")][XmlArrayItem("b",typeof(b))]publicb[]bb{get;set;}}[Serializable()]publicclassb{[XmlElement("c")]publicstringc{get;set;}[XmlEl

c# - 如何覆盖 C# 中的反序列化

我有一个类会随着时间的推移进行某些版本更改。作为我的应用程序启动的一部分,来自此类内部的数据被序列化和反序列化。我遇到的问题是,如果我通过添加更多属性来更新类,然后启动应用程序,则无法正确加载旧数据。我想要做的是重写反序列化步骤,我不介意从xml手动重建对象,因为我存储了版本号并可以使用它递归更新对象的版本。有没有我可以实现的接口(interface),或者我可以在某处设置的属性,以便能够做到这一点?如果你想不出一种方法来做我想做的事,还有其他选择吗?例如我正在加载的xml版本中可能不存在的属性的默认值。 最佳答案 实现IXmlSe

c# - 如何在 C# (System.Xml.Serialization) 中反序列化 XML 命名空间?

我只是对我的Zthesformat做最后的润色反序列化器(System.Xml.Serialization)在元素“thes”中使用命名空间“dc”。所有“term”元素都可以很好地反序列化,因为它们没有命名空间,但我不知道如何告诉反序列化器“thes”元素有一个命名空间。这是我正在尝试做的事情(它不起作用)所以希望有人能给我正确的语法。[XmlElement("namespace:someElement")]publicstringSomeElement; 最佳答案 这是给您的快速示例...[XmlRoot("myObject")

c# - 使用特殊字符反序列化 XML 的快速方法

我正在寻找反序列化xml的快速方法,其中包含特殊字符,如ö。我使用的是XMLReader,它无法反序列化这些字符。有什么建议吗?编辑:我正在使用C#。代码如下:XElementelement=..//hasthexmlXmlSerializerserializer=newXmlSerializer(typeof(MyType));XmlReaderreader=element.CreateReader();Objecto=serializer.Deserialize(reader); 最佳答案 我猜你遇到了编码问题,而不是在XMLR

c# - 如何使 XML 反序列化更快?

我有如下一段代码publicstaticobjectXmlDeserialize(stringxml,TypeobjType){StringReaderstream=null;XmlTextReaderreader=null;try{XmlSerializerserializer=newXmlSerializer(objType);stream=newStringReader(xml);//Readxmldatareader=newXmlTextReader(stream);//Createreaderreturnserializer.Deserialize(reader);}fina