jjzjj

xmlSerializer

全部标签

c# - 如何使用默认命名空间反序列化 xml?

我正在尝试反序列化由内部系统之一生成的Atomxml。但是,当我尝试时:publicstaticMyTypeFromXml(stringxml){XmlSerializerserializer=newXmlSerializer(typeof(MyType));return(MyType)serializer.Deserialize(newStringReader(xml));}它在命名空间的定义上抛出一个异常:System.InvalidOperationException:wasnotexpected.当我将命名空间添加到XmlSerializer的构造函数时,我的对象完全是空的:p

c# - 可序列化字典,如何设置键名?

问题:我使用一个可序列化的字典类,在http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx,序列化字典。哪个工作正常,但我遇到了一个烦人的问题。_PublicClasscDataBase_PublicnsAsNewSystem.Xml.Serialization.XmlSerializerNamespaces()_PublicTables1AsNewSerializableDictionary(OfString,cTable)EndClass'cDataBase当我像这样序列化上述类的实例时,创建的xml如下所示:

c# - XmlSerializer + 抽象类 + 派生类 = 无用的命名空间

我关于SO的第一个问题:,)是关于XmlSerializer和命名空间问题。我知道已经有很多关于如何从Xml文件的根元素中删除默认Xml命名空间的主题,这不是主题。我的问题是如何在使用派生类时将其从子节点中删除?我已经创建了我自己的序列化程序,它可以采用自定义命名空间或简单地忽略它们,并且它对根元素运行良好。但是当我使用抽象类在List中列出一些派生类时,序列化会在每个派生类的节点中插入2个属性。像这样:至于我的类(class)://Rootelement[XmlRoot("root",Namespace="")]publicclassXmlRootElement{List_Eleme

c# - 如何使用 XmlSerializer 在 C# 中反序列化期间将 xml 属性转换为自定义对象

我明白了InvalidCastException:Valueisnotaconvertibleobject:System.StringtoIdTag尝试反序列化xml属性时。这是示例xml:示例类:publicclassItem{[XmlAttribute]publicstringName{get;set;}[XmlAttribute]publicIdTagParentId{get;set;}}[Serializable]publicclassIdTag{publicstringid;}异常是从Convert.ToType()方法(从XmlSerializer调用)中抛出的。据我所知,

c# - 从基类派生的类的 XmlSerializer 构造函数错误

以下代码指定了从基类“TestBase”派生的类型“MyBase64Binary”usingSystem;usingSystem.Xml.Serialization;usingSystem.Collections;usingSystem.Xml.Schema;usingSystem.ComponentModel;namespaceTest{publicclassTestBase{publicTestBase(){}}[XmlType(TypeName="base64Binary"),Serializable]publicpartialclassMyBase64Binary:TestBa

c# - 带有 XmlTypeMapping 和 XmlRootAttribute 参数的 XmlSerializer 构造函数

我想在C#中预取一组已知类类型的XmlTypeMapping以加速它们的XML反序列化,同时将新的XmlSerializer实例化为XmlReflectionImporter.ImportTypeMapping(发生在类类型的XmlSerializer构造过程中)非常耗时,而且似乎发生在每个XmlSerializer构造过程中。此外,我正在解析的xml内容迫使我使用XmlRootAttribute参数来设置要解析的xml根元素名称,因为它并不总是相同的。为此,我可以使用XmlSerializer(Type,XmlRootAttribute)构造函数反序列化我的对象。不过,我也想从预取X

c# - XmlSerializer。保留空字符串属性?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:XMLSerializationandnullvalue-C#changehowXmlSerializerserializesemptyelements如何使XmlSerializer为具有空值的字符串属性存储空标记,而不是跳过该属性?

c# - 反序列化大型 XML 文档中的单个元素 : xmlSerializer. Deserialize(xmlReader.ReadSubtree()) 由于命名空间问题而失败

我正在尝试一次性处理大型XML文档(使用XmlReader),并使用XmlSerializer仅反序列化其中的某些元素。下面是一些代码和一个小型模拟XML文档,展示了我是如何尝试这样做的。RationaleforusingXmlReader:1.IamdealingwithverylargeXMLdocuments(10–250MB),whichforthisreasonIdonotwanttoloadintomemory.SoXmlDocumentisoutofthequestion.2.Iwanttoextractonlycertainelements.TypicallyIwill

C# 列表<> 到 xml

打电话List_PCList=newList();...addPctoPCList..WriteXML>(_PCList,"ss.xml");函数publicstaticvoidWriteXML(To,stringfilename){stringfilePath=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\\Genweb2\\ADSnopper\\"+filename;XmlDocumentxmlDoc=newXmlDocument();XPathNavigatornav=xmlDoc.C

c# - 有什么方法可以使 XmlSerializer 以定义的顺序输出 xml?

目前我正在使用XmlSerializer序列化和反序列化一个对象。xml以未定义的顺序生成,这是可以理解的,但在比较对象的版本时会很烦人,因为属性的顺序每次都不同。因此,例如我无法使用普通的差异工具来查看任何差异。有没有一种简单的方法可以每次都以相同的顺序生成我的xml,而无需自己编写ReadXml和WriteXml方法?我在这个类上有很多属性,并且不时地添加新属性,所以我宁愿不必编写和维护该代码。(C#.net2.0) 最佳答案 XmlElement属性有一个orderproperty.您可以以此为起点。如果您需要查找Xml文件中