jjzjj

xmlSerializer

全部标签

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

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

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

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

.net - 使用 Sgen 和 ILMerge 预生成 XmlSerializers。数组的问题

我广泛使用XmlSerializer,而不是让.NET在运行时生成必要的序列化程序集,我想提前生成这些程序集并将它们与我的应用程序捆绑在一起。我能够使用Sgen在构建时生成这些程序集。此外,我必须为每个要序列化的数组类型分别运行Sgen(使用sgen/t:Foo[])。最后,我使用ILMerge将数组类型序列化类合并到Foo.XmlSerializers.dll程序集中。我已使用ildasm验证Foo.XmlSErializers.dll实际上包含所有合并的类。在运行时,.NET成功地从Foo.XmlSerializers.dll加载FooSerializer,而无需调用csc并生成临

c# - .NET XmlSerializer 和小数

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

c# - XmlSerializer 没有序列化两个枚举属性

我们目前正在尝试使用XmlSerializer.Serialize将一组对象序列化为xml我们已经使用以下stub测试了XmlSerializerprivatestaticvoidTestMethod(){ChartContentConfigConfig=newChartContentConfig();Config.DefinitionId="6790e2ca-be93-48dd-94e7-f8ec0f6e5fd4";Config.Sorts=null;Config.DataFields=newDataField[1];Config.DataFields[0]=newDataField

c# - 如何将从 XSD 生成的类序列化为 XML

我从VisualStudio创建了一个XSD文件,也可以生成一个示例XML,但我的目标是使用这个XSD在运行时创建一个XML文件。我使用XSD.exe从我的XSD文件生成一个类,然后创建一个程序来从“类”填充对象。如何将对象序列化为XML文件? 最佳答案 这两个示例都使流保持打开状态,并且XmlFormatter是BizTalk库的一部分-因此XmlSerializer更合适:using(Streamstream=File.Open(fileName,FileMode.Create)){XmlSerializerserializer

c# - XML序列化和反序列化与内存流

这个问题在这里已经有了答案:Rootelementismissing(7个答案)关闭7年前。以下代码在尝试反序列化代码时找不到根元素时出现错误:Anexceptionoftype'System.InvalidOperationException'occurredinSystem.Xml.dllbutwasnothandledinusercodeAdditionalinformation:ThereisanerrorinXMLdocument(0,0).Innerexception:{"Rootelementismissing."}代码看起来很简单,但是在这个问题上谷歌搜索和搜索SO并没

C# XMLSerializer 将错误的类型反序列化为列表

下面的程序是我在C#中反序列化XML时发现的问题的人为示例。我有两个单独的程序集,它们声明了一个具有相同名称的类型,在下面的示例中为“Country”。这些类型由XMLnamespace区分。当我反序列化包含单个“国家/地区”元素的配置文件时,将解析正确的“国家/地区”类型。但是,如果我反序列化“国家”元素的“列表”,则会反序列化错误的“国家”类型。classProgram{staticvoidMain(string[]args){XDocumentgbConfig=XDocument.Parse(@"");XDocumenteuConfig=XDocument.Parse(@"");

c# - 反序列化 XML 为集合属性返回 null

我正在尝试反序列化以下XML:testtesttest2test2使用以下类:[XmlRoot("somedata",Namespace="urn:somedata")]publicclassMfCurrentAccounts{[XmlElement("CurrentAccount")]publicCurrentAccount[]CurrentAccounts{get;set;}}publicclassCurrentAccount{publicstringAccountType{get;set;}[XmlElement("Charge")]publicCharge[]Charges{g

.net - 如何将 "include"一个 XML 文件转换为另一个 XML 文件?

我有一个像这样的XML模式:根据此架构的有效XML文档将是:Myheaderwhichisalmostalwaysthesame...Mytextbodywhichisalwaysdifferent...问题1:有没有办法从另一个文件中“包含”TextHeader元素?像这样:文件“Header.xml”:MyHeaderwhichisalmostalwaysthesame...文件“CompleteDocument.xml”:include"Header.xml"???Mytextbodywhichisalwaysdifferent...问题2:如果可能的话,.NETXMLSeria