草庐IT

XMLSerializer

全部标签

c# - 无法在 C# 中反序列化 XML

我在尝试反序列化以下XML时遇到了一些问题:001000000815001000010123使用以下代码行:varreader=newStringReader(XmlShownAbove);varserializer=newXmlSerializer(typeof(Response));varinstance=(Response)serializer.Deserialize(reader);以及以下两个模型:[XmlRoot("Response",Namespace="http://Microsoft.LobServices.Sap/2007/03/Rfc/")]publicclass

c# - "Unknown Node:VarName"XML 反序列化期间

我有这个示例XML文件,我需要对其进行反序列化:TohleJeString2429.617.11.1968cTohleJeTakéString175.906.07.1415pNoATohleTaké278.506.12.1774x这是带有另一个类列表的根类:[XmlRoot("CollectionOfUnits",IsNullable=false)]publicclassXmlExampleCollectionOfUnits{[XmlArray("Unit")]publicListUnits{get;set;}publicXmlExampleCollectionOfUnits(List

c# - XmlSerializer 和 XmlElement 字段

我有一个如下所示的xml:我想反序列化它以获得位作为XmlElement或XmlNode。但是当我这样尝试时:publicclassConfig{publicstringA;publicXmlElementTemplate;}模板设置为只要。有什么想法吗? 最佳答案 用XmlAnyElement装饰您的模板成员属性。这应该可以解决问题。 关于c#-XmlSerializer和XmlElement字段,我们在StackOverflow上找到一个类似的问题: ht

xml - Windows应用程序的设计问题,最佳方法?

我正在设计一个应用程序,可以让您找到由某些程序制作的图片(屏幕截图)。我将在应用程序本身中提供一些程序的位置,以帮助用户入门。我想知道随着时间的推移我应该如何添加新位置,我的第一个想法是简单地将其硬编码到应用程序中,但这将意味着用户必须重新安装它才能使更改生效。我的第二个想法是使用一个XML文件来包含所有位置以及其他数据,例如应用程序的名称。这也意味着用户可以根据需要添加自己的位置,也可以通过互联网共享它们。第二个选项似乎是最好的方法,但我不得不考虑如何在用户计算机上对其进行管理。理想情况下,我只想要一个不依赖任何外部文件(例如XML)的.exe,但这会让我回到第一点。最好只使用Cli

c# - 第一次机会异常发生在 XMLSerializer 的构造函数中

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:XmlSerializergivingFileNotFoundExceptionatconstructor我在使用XMLSerializer时收到了第一个机会异常,XMLSerializerxml=newXMLSerializer(typeof(A))Afirstchanceexceptionoftype'System.IO.FileNotFoundException'occurredinmscorlib.dllAdditionalinformation:Couldnotloadfileorassembly'

.net - 为什么 XmlSerializer 不序列化我的数组?

我是XmlSerializer的新手。我写了一个小类来保存数据库中的条目:[Serializable]publicstructEntry{publicstringartkey,lid,request,status,requestdate;}很简单吧?序列化这些列表应该是小菜一碟。我有一个函数可以编译这些列表。为了序列化我的列表,我尝试了以下代码:XmlSerializerserializer=newXmlSerializer(typeof(Entry));System.IO.MemoryStreamms=newSystem.IO.MemoryStream();serializer.Se

c# - 构建后将 XDeclaration 添加到 XDocument

我有一个XmlSerializer,用于将对象序列化为XDocument。vardoc=newXDocument();using(varwriter=doc.CreateWriter()){xmlSerializer.Serialize(writer,object);}完成后,我想添加一个XDeclaration:我按如下所述构造此XDeclaration:vardecl=newXDeclaration("1.0","UTF-8","no");但是,当我尝试将此XDeclartion添加到我的XDocument时,出现以下错误:System.ArgumentException:Nonw

.net - 使用小写的所有节点创建自定义 XMLSerializer

我正在使用XmlSerializer为我的类(class)生成XML输出。是否可以创建一个自定义的XMLSerializer,它的所有xml节点都是小写的?我不想将属性添加到我的类中的每个字段字段以指定小写的节点。谢谢,安吉拉 最佳答案 这取决于你想做多少工作。添加属性是最简单的选择,但您说您不想这样做。您可以用小写名称命名类,但这是一种糟糕的方法,IMO。您可以通过使用XmlAttributeOverrides告诉XmlSerializer在运行时做什么-但是您需要使用反射来告诉它所有的事情您想要调整的成员,但请注意:如果您这样做

c# - 我可以使用 XmlSerializer 控制某些字段的序列化吗

我可以在C#中使用XmlSerializer控制某些字段的序列化吗?Fox示例一个名为“Type”(string)的属性被序列化为其他东西而不是字符串。提前致谢。 最佳答案 您可以通过XmlElement控制一些事情/XmlAttributeannotations--元素的名称,无论是属性还是完整的XML元素等。但是,您不能直接更改类型。如果您需要支持任何类型的复杂序列化方案,XmlSerializer不是一个好的选择,因为它有很多限制。您最好使用DataContractSerializer(请参阅WCF文档中的"UsingData

c# - .NET XmlSerializer 和小数

我在远程xsd文件上使用xsd.exe来生成一些C#类定义。一种类型定义为当我尝试反序列化xml文件时出现错误:ThereisanerrorinXMLdocument(30,12).--->System.FormatException:Inputstringwasnotinacorrectformat.这似乎只有在使用逗号作为分组分隔符(即87,000)时才会发生。如果我检查并删除出现错误的逗号,反序列化工作正常。我可以对xsd进行一些修改以允许逗号分组吗?或者更好的方法是在我的代码中允许它?尝试用逗号解析我的代码中的小数点工作正常,只是不喜欢它在xml文件中。