Tag: xml deserialization

XML反序列化通用方法

我有下一个XML文件: d639a54f-baca-11e1-8067-001fd09b1dfd -24145 e3b3b4cd-bb8e-11e1-8067-001fd09b1dfd 0.28 我把它反序列化到这个类: [XmlRoot(“Root”, IsNullable = false)] public class DocBalanceCollection { [XmlElement(“Document”)] public List DocsBalanceItems = new List(); } DocBalanceItem是: public class DocBalanceItem { [XmlElement(“Id”)] public Guid DocId { get; set; } [XmlElement(“Balance”)] public decimal? BalanceAmount { get; set; } } 这是我的反序列化方法: public DocBalanceCollection DeserializeDocBalances(string filePath) { var docBalanceCollection = new DocBalanceCollection(); […]

XML文档中的反序列化错误(1,1)

我有一个我反序列化的XML文件,有趣的是XML文件是使用以下代码序列化的: enter code here var serializer = new XmlSerializer(typeof(CommonMessage)); var writer = new StreamWriter(“OutPut.txt”); serializer.Serialize(writer, commonMessage); writer.Close(); 我试图再次反序列化以检查输出是否与输入匹配。 无论如何这里是我反序列化的代码: var serializer = new XmlSerializer(typeof(CommonMessage)); var reader = new StringReader(InputFileName); CommonMessage commonMessage = (CommonMessage)serializer.Deserialize(reader);

反序列化枚举

我有一个xml,其中一个元素的属性可以为空。 例如, ….. 现在,语言是从模式创建的类中的枚举类型。 如果指定了语言,它可以正常工作,如果它是空白则无法反序列化(如示例所示)。 编辑:反序列化的代码: XmlSerializer xmlserializer = new XmlSerializer(type); StringReader strreader = new StringReader(stringXML); Object o = serializer.Deserialize(strreader); 我该如何处理这种情况

从String反序列化XML

我正在尝试将我从Web服务获得的结果转换为字符串并将其转换为对象。 这是我从我的服务中得到的字符串: 2013-01-31T15:28:13.2847259ZThe processing of this task has started1Started 所以我有一个课程为: [XmlRoot] public class StatusDocumentItem { [XmlElement] public string DataUrl; [XmlElement] public string LastUpdated; [XmlElement] public string Message; [XmlElement] public int State; [XmlElement] public string StateName; } 这就是我试图通过XMLDeserializer将该字符串作为StatusDocumentItem类型的对象(NB。operationXML包含字符串): string operationXML = webRequest.getJSON(args[1], args[2], pollURL); var serializer = new XmlSerializer(typeof(StatusDocumentItem)); StatusDocumentItem result; using (TextReader reader = new […]

通过C#中的XmlSerializer类反序列化多个具有相同名称的XML元素

我在表单中有一个XML 0 0 0 1 0 0 0 0 0 480 1020 0 我需要对其进行反序列化,更改其内容并将其保存回来。 我在阅读ScheduledDay元素时遇到问题。 我的class级就像 public class BackupScheduleSettings { public BackupScheduleSettings() { ScheduledDay = new int[7]; } ….. public int[] ScheduledDay { get; set; } ….. } 现在,当我加载具有ScheduledDay正确值的XML内容时,我的类数组仍为NULL。 我无法修改XML的内容/格式,因为它是遗留代码。 我不想使用XDocument读取值,因为它是一个大型XML,我需要再次序列化它。 我没有任何帮助就搜索了很多。 任何想法将受到高度赞赏。 谢谢…

如何使用DataContractSerializer反序列化XML

我正在尝试反序列化xml文档: TEST1 TESTGAME1 1111111 5,00 TEST2 TESTGAME2 222222 0,30 0,90 .cs类: namespace XmlParse { using System.Collections.Generic; using System.Runtime.Serialization; [DataContract(Namespace = “http://serialize”)] public class game { #region Public Properties [DataMember] public string name { get; set; } [DataMember] public string code { get; set; } [DataMember] public long ugn { get; set; } [DataMember] public List […]

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

我正在寻找快速反序列化xml的方法,它有像ö那样的特殊字符。 我正在使用XMLReader,它无法反序列化这些字符。 有什么建议吗? 编辑:我正在使用C#。 代码如下: XElement element =.. //has the xml XmlSerializer serializer = new XmlSerializer(typeof(MyType)); XmlReader reader = element.CreateReader(); Object o= serializer.Deserialize(reader);

如何在不事先知道类型的情况下使用XmlSerializer反序列化可能是基类或派生类的对象?

在C#中,如何使用XmlSerializer反序列化可能是基类的对象,或者在不事先知道类型的情况下反序列化任何几个派生类? 我的所有派生类都添加了其他数据成员。 我做了一个简单的GUI,可以序列化和反序列化类对象。 它将序列化对象,因为任何inheritance的类(甚至只是基类)都适合于用户选择填充的字段。 我对序列化没有任何问题; 问题是反序列化。 如何在不事先知道类的情况下将XmlSerializer反序列化数据到正确的派生类? 我目前创建一个XmlReader来读取XML文件的第一个节点并从中确定类,它似乎适用于我的目的,但它似乎是一个非常不优雅的解决方案。 我在下面发布了一些示例代码。 有什么建议? BaseType objectOfConcern = new BaseType(); XmlSerializer xserializer; XmlTextReader xtextreader = new XmlTextReader(DEFAULT_FILENAME); do { xtextreader.Read(); } while (xtextreader.NodeType != XmlNodeType.Element); string objectType = xtextreader.Name; xtextreader.Close(); FileStream fstream = new FileStream(DEFAULT_FILENAME, FileMode.Open); switch (objectType) { case “type1”: xserializer = new XmlSerializer(typeof(DerivedType)); objectOfConcern = (DerivedType)xserializer.Deserialize(fstream); //Load fields […]

为什么OnDeserialization不会触发XML反序列化?

我有一个问题,我一直在抨击我的头三个小时的大部分时间。 我几乎可以肯定我错过了一些令人目眩的事情…… 我有一个简单的XML文件: 我有一个简单的类结构: [Serializable] public class Record { [XmlAttribute(“actual”)] public double weight { get; set; } [XmlAttribute(“date”)] public DateTime date { get; set; } [XmlIgnore] public double trend { get; set; } } [Serializable] [XmlRoot(“WeightStore”)] public class SimpleWeightStore { [XmlArrayAttribute(“Records”)] private List records = new List(); public List Records { get { return records; […]

如何为XmlElement字段定义多个名称?

我有一个客户端应用程序提供给我的C#应用​​程序的XML文档。 这是客户端发送XML文件的方式: 2380983 还有一个支持XML反序列化的C#类: [XmlRoot] public class SomeAccount { [XmlElement(“parentId”)] public long ParentId { get; set; } //rest of fields… } 但是有一些客户端的系统以这种方式发送XML(请注意LeParentId中的LeParentId ): 2380983 如何使此字段(和其他字段)支持XML名称parentId和LeParentId ? 这是我目前用于XML反序列化的方法: public sealed class XmlSerializationUtil { public static T Deserialize(string xml) { if (xml == null) return default(T); XmlSerializer serializer = new XmlSerializer(typeof(T)); StringReader stringReader = new StringReader(xml); return […]