Tag: xml deserialization

Xml反序列化 – 将两个元素合并为一个List 对象

我有一个XML文档,并使用反序列化,有没有办法将两个元素组合成一个对象? XML示例: 3 4 我想创建一个包含项目3和4的列表(类型为Parameter)。 我尝试过使用XmlArrayItem,例如: [XmlArrayItem(“Parameter1”)] [XmlArrayItem(“Parameter2”)] [XmlArray] public Parameter[] Parameters; // have also tried this as public List Parameters = new List(); 我尝试过使用XmlElements(但我无法弄清楚如何将它们组合起来): [XmlElement(“Parameter1”)] public List Parameters = new List(); 有没有办法做到这一点,而不只是创建两个单独的列表,并在以后组合它们? 请注意,更改XML格式不是一种选择。

C#XML反序列化错误(2,2)

学校给了我一个XML文档,我必须在屏幕上显示信息。 据我所知,Xml反序列化将是最简单/最好的解决方案。 到目前为止我有这个: public static List ProjectListDeserialize(string path) { XmlSerializer serializer = new XmlSerializer(typeof(List)); Stream filestream = new FileStream(path, FileMode.Open); return (List)serializer.Deserialize(filestream); } public static Projects ProjectsDeserialize(string path) { XmlSerializer serializer = new XmlSerializer(typeof(Projects)); Stream filestream = new FileStream(path, FileMode.Open); return (Projects)serializer.Deserialize(filestream); } 这就是XML文档的样子: Project data key performance indicators WorkInProgress 2011-01-01 2011-08-01 Implementation WaitListed 2011-06-01 […]

如何在c#对象中反序列化这个嵌套的xml

我使用silverlight ot实现xml的反序列化,如下所示: String xmlString = 1 yes 1 skew skew_side 0 automodel 在我尝试实现这一点时,我觉得我在课堂上有一些东西。 课程如下: [XmlRoot(ElementName = “attributes”)] public class Attributes { [XmlElement(“disableOthers”)] public List DisableOthers { get; set; } } [XmlRoot(ElementName = “disableOthers”)] public class DisableOthers { [XmlElement(“disableOthers”)] public List DisableOther { get; set; } } [XmlRoot(ElementName = “disableOther”)] public class DisableOther { [XmlElement(“disablingitem”)] public […]

从XML到列表对象的反序列化

我正在执行将XML文件转换为List Objects的程序。 我已成功完成从List到XML的序列化。但我在进行反序列化时遇到问题。 请有人告诉我,我在这段代码中做了什么错。 这是我的XML代码。 1 vicky1kumar 248847227 2 vicky1kumar2kumar 725228355 3 vicky1kumar2kumar3kumar 2032848116 4 vicky1kumar2kumar3kumar4kumar 853938969 5 vicky1kumar2kumar3kumar4kumar5kumar 530646891 0 这是我将XML转换为List对象的类 public class Converter { public static T XmlToObject(string xml) { using (var xmlStream = new StringReader(xml)) { var serializer = new XmlSerializer(typeof(T)); return (T)serializer.Deserialize(XmlReader.Create(xmlStream)); } } public static List XmlToObjectList(string xml, string nodePath) […]

XmlSerialization与单身

序列化的困境继续 …… 我正在尝试序列化一个类,这些类的实例在它们之间共享公共对象(各种类型的绑定器)。 因此,对象A,B,C共享对象Binder1,对象D和E – Binder2等等……我正在序列化对象A,B,C,D,E。 通常,此绑定器对象在构造函数中传递 – 而不是使用序列化程序,因为它需要无参数构造函数。 ISeriazable似乎有一些适用于单例的东西 – IObjectReference接口,其中方法GetRealObject可用于返回对新创建的单例的引用。 但是,它看起来不像XmlSerializer关心这个接口。 那么,我应该如何序列化/反序列化这些对象呢? 编辑 :我几乎已经准备好放弃这个问题,因为我刚刚在两个巨头@JonSkeet和@MarcGravell之间的2006年(!!) 论坛上发现了这个问题 ,其中XmlSerializer的答案基本上没有 。 为了防止过去7年的情况发生变化,我会将此问题保持更长时间。

尽管元素值包含混合内容,但将元素值反序列化为字符串

假设这样的XML: content content 还有一个类: [Serializable] [XmlType(AnonymousType = true, Namespace = “http://foo/bar”)] [XmlRoot(ElementName = “Root”, Namespace = “http://foo/bar”, IsNullable = false)] public class MyRoot { public string FieldBasic { get; set; } public string FieldComplex { get; set; } } 如何将反序列化为中的字符串? 它在内部找到HTML时失败。 我想让它给我一个包含这个内容的字符串: content 如果我将FieldComplex声明为public object FieldComplex (即xsd:anyType ),它有点工作,我得到一个XMLNode[] ,我可以使用它。 但我需要FieldComplex为序列化的类型字符串,因为序列化XML不包含HTML,它将如下: content content 将FieldComplex声明为对象将在元素上插入这些属性: xmlns:q1=”http://www.w3.org/2001/XMLSchema” p3:type=”q1:string” […]

将此XML反序列化为对象的最佳方法

在其他示例中,我看到它与我的相似,有一个根节点,然后是一个数组节点,然后是一堆数组项。 我的问题是,我的根节点是我的数组节点,所以我看到的示例似乎对我不起作用,我无法更改XML模式。 这是XML: 7f6da9df-1a91-4e20-8b66-07ac7548dc47 1 deal_abstract Abu Dhabi’s IPIC Eyes Bond Sale After Cepsa Buy Abu Dhabi’s IPIC has appointed banks for a potential sterling and euro-denominated bond issue, a document showed on Wednesday, after the firm acquired Spain’s Cepsa in a $5 billion deal earlier this month… 02/24/2011 00:00:00 AM 1c3e57a0-c471-425a-87dd-051e69ecb7c5 2 deal_abstract Big […]

如何在C#中将XMLDocument反序列化为对象?

我有一个.Net webserivce,它接受字符串格式的XML 。 发送到webserivce的XML String可以表示系统中的任何Object。 我需要检查第一个节点,找出反序列化XML字符串的对象。 为此,我将不得不将XML加载到XMLDocument (不想使用RegEx或字符串比较)。 我想知道是否有一种方法来反序列化XMLDocument/XMLNode而不是反序列化字符串以节省一些性能? 串行化XMLNode而不是字符串是否会带来任何性能优势? 加载XMLDocument的方法 public void LoadFromString(String s) { m_XmlDoc = new XmlDocument(); m_XmlDoc.LoadXml(s); } 谢谢

何时使用XmlSerializer.Deserialize进行反序列化时调用类构造函数?

我的应用程序使用XmlSerializer保存一个类,然后在需要时通过再次反序列化来创建一个实例。 我想在我的构造函数逻辑中使用我的类的一些属性成员(在反序列化期间分配)。 可以假设首先分配属性,并且一旦分配了所有属性,就会调用构造函数吗? 继续讨论这个主题,是否有关于反序列化过程中发生的事件序列的文档?

使用C#中的换行符对XML元素进行XML反序列化

我似乎无法弄清楚为什么这个测试没有通过 测试是: 给出以下XML: 1234567890 ABCXYZ 和以下课程: class Foo { [XmlElement(ElementName = “account”, DataType = “normalizedString”)] string account; [XmlElement(ElementName = “deptCode”, DataType = “normalizedString”] string deptCode; } 当该XML反序列化时: XmlSerializer serializer = new XmlSerializer(typeof(Foo)); Foo myFoo = (Foo) serializer.Deserialize(xmlReader); 我得到以下值: Foo.account = “\r\n 1234567890 \r\n” Foo.deptCode = “\r\n ABCXYZ \r\n” 而不是预期的 Foo.account = “1234567890” Foo.deptCode = “ABCXYZ” […]