Tag: xml serialization

如何让XmlSerializer不序列化容器标签?

我有一个简单的对象图,我想序列化,我还没有找到解决这个问题的方法。 这里是: [XmlRoot] public partial class MyData { private List itemsField; public MyData() { this.anyAttrField = new List(); this.itemsField = new List(); } [XmlElement(Type = typeof(MyDatum))] public List Items { get { return this.itemsField; } set { this.itemsField = value; } } } 这会产生以下XML: … 我想删除“Items”容器标记来生成它: … 我尝试了各种解决方案,但似乎无法找到解决方案。

如何在c#中使用XMLSerialize for Enum类型的属性?

我有一个简单的枚举: enum simple { one, two, three }; 我也有一个类型simple的类。 我尝试使用以下属性进行装饰: [XmlAttribute(DataType = “int”)] 。 但是,当我尝试使用XmlWriter序列化它时它失败了。 这样做的正确方法是什么? 我是否必须标记枚举本身以及属性,如果是,请使用哪种数据类型?

序列化/反序列化对象 – 字段的顺序很重要?

如果字段不在“正确”(无论是什么意思)顺序中, DataContractSerializer是否可能错误地反序列化对象? 我尝试序列化/反序列化的类没有在字段/属性上放置顺序属性。 然而,我的一个字段总是被反序列化为null即使它具有非空值(它实际上包含字符串列表)。 当我在序列化文件中移动两个XML元素以匹配另一个XML示例中的顺序时(反序列化工作没有问题)一切都开始工作。 这对我没有意义,但也许有人知道的更好。 ;)

如何使用asp.net序列化使用值和属性反序列化xml节点

我有4个小类来从一个xml轮询中反序列化xml,到可用的类来构建轮询。 现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个简单的字符串,但如果该元素也具有如下例所示的属性,该怎么办? 3 2 5 问题类看起来像这样: [Serializable()] public class Question { [XmlAttribute(“Id”)] public Guid QuestionId { get; set; } [XmlArray(“AnswerItems”)] [XmlArrayItem(“AnswerItem”, typeof(AnswerItem))] public AnswerItem[] AnswerItems { get; set; } } [Serializable()] public class AnswerItem { [XmlAttribute(“Id”)] public Guid QuestionId { get; set; } // how do i fetch the value of this node? // its […]

xmlserializervalidation

我正在使用XmlSerializer来反序列化Xml achives。 但我发现生成的类xsd.exe只提供读取xml的function,但没有validation。 例如,如果文档中缺少一个节点,则生成的类的属性字段将为null,而不是像我预期的那样抛出validationexception。 我怎样才能做到这一点? 谢谢!

将类序列化为XML?

我有以下类和持有它的列表: public class Transport { public string TransportType { get; set; } public string Mode { get; set; } public class Coordinates { public float ID { get; set; } public float LocX { get; set; } public float LocY { get; set; } public float LocZ { get; set; } public ObjectState State { […]

将C#类序列化为XML文本的更简单方法

在尝试回答另一个问题时,我将C#对象序列化为XML字符串。 这太令人惊讶了; 这是我能提出的最短的代码片段: var yourList = new List() { 1, 2, 3 }; var ms = new MemoryStream(); var xtw = new XmlTextWriter(ms, Encoding.UTF8); var xs = new XmlSerializer(yourList.GetType()); xs.Serialize(xtw, yourList); var encoding = new UTF8Encoding(); string xmlEncodedList = encoding.GetString(ms.GetBuffer()); 结果还可以: 1 2 3 但是片段比我想象的要复杂得多。 我不敢相信你必须知道编码和MemoryStream这个简单的任务。 是否有更短的方法将对象序列化为XML字符串?

将对象序列化为具有属性和子元素的元素

我希望使用System.Xml.Serialization.XmlSerializer定义将生成以下xml的类。 我正在努力获取项目列表,其中的属性不包含’item’元素的子’container’元素。

序列化对象时省略XML处理指令

我正在C#VS2003 / .Net 1.1应用程序中序列化一个对象。 但是,我需要在没有处理指令的情况下进行序列化。 XmlSerializer类推出类似这样的东西: Data More Data 有没有办法得到类似下面的东西,而不处理结果文本删除标签? Data More Data 对于那些好奇的人,我的代码看起来像这样…… XmlSerializer serializer = new XmlSerializer(typeof(MyObject)); StringBuilder builder = new StringBuilder(); using ( TextWriter stringWriter = new StringWriter(builder) ) { serializer.Serialize(stringWriter, comments); return builder.ToString(); }

XML(de)序列化无效字符串在c#中不一致?

在C#(。net 4.0和4.5 / vs2010和vs12)中,当我使用XMLSerializer序列化包含具有非法字符的字符串的对象时,不会引发错误。 但是,当我反序列化该结果时,会抛出“无效字符”错误。 // add to XML Items items = new Items(); items.Item = “\v hello world”; // contains “illegal” character \v // variables System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Items)); string tmpFile = Path.GetTempFileName(); // serialize using (FileStream tmpFileStream = new FileStream(tmpFile, FileMode.Open, FileAccess.ReadWrite)) { serializer.Serialize(tmpFileStream, items); } Console.WriteLine(“Success! XML serialized in file ” […]