Tag: ixmlserializable

使用XmlSerializer进行自定义序列化

我有一个类,我需要从中做一些自定义XML输出,因此我实现了IXmlSerializable接口。 但是,我希望使用默认序列化输出的某些字段,但我想更改xml标记名称。 当我调用serializer.Serialize时,我在XML中获得默认标记名称。 我能以某种方式改变这些吗? 这是我的代码: public class myClass: IXmlSerializable { //Some fields here that I do the custom serializing on … // These fields I want the default serialization on except for tag names public string[] BatchId { get; set; } … … ReadXml and GetSchema methods are here … public void WriteXml(XmlWriter writer) { […]

获取参数的调用变量名称

关于问题从调用方法获取参数 名称和查找传递给C#中函数的变量名称,我仍然在寻找一种方法来定义WhatDoesTheAnimalSay_WANTED方法:我想知道使用的变量的名称作为参数: public class Farm { public readonly string Cow = “Muuuuhh”; public string Cat { get; set; } public void MainFunction() { var dog = “WauWau”; var kiwi = new Bird(“QueeeekQueeek”); Cat = “Miiiaaauuuu”; // This one works but looks kinda ugly and is cumbersome when used WhatDoesTheAnimalSay(nameof(dog), dog); WhatDoesTheAnimalSay(nameof(Cow), Cow); WhatDoesTheAnimalSay(nameof(Cat), Cat); WhatDoesTheAnimalSay(nameof(kiwi), […]

嵌套/子对象的自定义XmlSerialization

我有一个场景,我有一个类资源,其中有两个嵌套在其中的类; Action和ResourceURL。 我需要为Resource和Action编写自定义xmlserializer,而不是为ResourceURL编写。 我为它们实现了IXmlSerializable。 问题是,当Resource被序列化时,我调用Action.WriteXML(XmlWriter)来获取Action的序列化forms,但是我无法获得ResourceURL的序列化forms。 标签变得混乱,它还添加了一个标签。 那么,我如何序列化一个对某些嵌套对象进行客户seril化的对象,而不是其他对象呢?

在使用数据协定序列化程序序列化IXmlSerializable对象时,如何控制根元素名称空间和名称?

我有一个实现IXmlSerializable的类型,我使用DataContractSerializer序列化。 在将其作为XML文档的根元素序列化时,如何控制根元素名称空间和名称? 说我有以下类型: public partial class PersonDTO : IXmlSerializable { public string Name { get; set; } #region IXmlSerializable Members public System.Xml.Schema.XmlSchema GetSchema() { return null; } public void ReadXml(System.Xml.XmlReader reader) { Name = reader[“name”]; if (!reader.IsEmptyElement) reader.Skip(); reader.Read(); } public void WriteXml(System.Xml.XmlWriter writer) { writer.WriteAttributeString(“name”, Name); } #endregion } 如果我使用DataContractSerializer作为我的根对象将其序列化,我得到: 我希望根名称为 ,根名称空间为”http://www.MyCompany.com” ,所以我尝试添加[DataContract]如下所示: [DataContract(Name […]