草庐IT

SERIALIZATION

全部标签

c# - 以编程方式将类序列化为 xsd

有没有办法以编程方式从C#.NET类创建XSD?我想使用类型信息将对象序列化为xsd(或xml)。 最佳答案 是的;查看XsdDataContractExporter;MSDN有一个fullexamplehere.备选;XmlSchemaExporter 关于c#-以编程方式将类序列化为xsd,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8308500/

c# - XmlSerializer 是否会转义 & 等特殊字符?

我正在尝试重构一个将其对象作为XML传输的库。虽然我认为.NETFramework的XmlSerialzer可以处理序列化,但该类都有一个ToXML函数。在其中,所有字符串值都通过一个转义字符的函数喜欢和相似。XmlSerializer不会自动转义那些a字符吗? 最佳答案 是的。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Xml.Serialization;usingSystem.Xml;namespaceTestXmlSerial

c# - 由于格式化,XML 反序列化在十进制解析时崩溃

当我尝试将XML解析为对象时抛出System.FormatException。据我所知,这是由于System.Xml.Serialization.XmlSerializer.Deserialize中使用的区域性导致的,它期望一个点作为十进制字符,但xml包含一个逗号。对象如下所示:publicsealedclassTransaction{[XmlElement("transactionDate")]publicDateTimeTransactionDate{get;set;}[XmlElement("transactionAmount")]publicdecimalAmount{get

c# - List<Object> 的 XML 序列化

我无法使用XML序列化将动物列表保存到磁盘。我收到异常:抛出:“AnimalLibrary.Animals.Mammals.Dog类型不是预期的。使用XmlInclude或SoapInclude属性指定静态未知的类型。”(System.InvalidOperationException)如果我尝试使用“Dog”注释代码,它将按预期工作并生成XML。但是作为列表中唯一元素发送的同一条狗不起作用。[XmlElement("animalList")]publicListanimalList=newList();publicboolSaveBinary(stringfileName){Mamm

c# - 如何使用类名作为根元素序列化 C# 类

我有以下C#类[XmlRoot("Customer")]publicclassMyClass{[XmlElement("CustId")]publicintId{get;set;}[XmlElement("CustName")]publicstringName{get;set;}}然后我使用以下函数将类对象序列化为XmlpublicstaticXmlDocumentSerializeObjectToXML(objectobj,stringsElementName){XmlSerializerserializer=newXmlSerializer(obj.GetType(),newXml

c# - 使用 C# .NET 处理 XML 中的禁用字符

我有一个要序列化为xml的对象。其中一个属性中的值似乎包含十六进制字符0x1E。我已尝试将XmlWriterSettings的编码属性设置为“utf-16”和“unicode”,但我仍然抛出异常:生成XML文档时出错。--->System.InvalidOperationException:生成XML文档时出错。--->System.ArgumentException:'',十六进制值0x1E,是无效字符。有没有办法把这些字符放到xml中?如果不是,是否还有其他字符会导致问题? 最佳答案 XML推荐标准(又名规范)http://ww

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

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

c# - 反序列化错误 : The XML element 'name' from namespace '' is already present in the current scope

这是我第一次使用XML序列化,在尝试解决此问题2天后,这绝对让我疯狂。反序列化开始时出现此错误:TheXMLelement'name'fromnamespace''isalreadypresentinthecurrentscope.UseXMLattributestospecifyanotherXMLnameornamespacefortheelement.错误发生在我代码中的这一行:Albumalbum=(Album)serializer.Deserialize(reader);我不知道为什么。没有重复的“名称”节点,所以我就是不明白。这是从来自第3方RESTAPI的HttpWebR

c# - 在反序列化期间忽略属性

我有一个非常好的序列化类-终于!现在我想给这个类添加一个我根本不想序列化的属性。是否可以添加具有某种属性的新属性,以便在我调用序列化或反序列化方法时,该属性不会被注意到? 最佳答案 [XmlIgnore]publicintDoNotSerialize{get{...}set{...}} 关于c#-在反序列化期间忽略属性,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1198910

c# - 反射(reflect)类型时出现错误 - XML 序列化问题

我有一个需要写入XML文件的字典对象。该字典包含作为键的字符串类型和作为值的自定义类的对象(派生自System.Windows.Forms.Control)。namespaceSharpFormEditorDemo{[Serializable]publicstaticclasscommon{publicstaticDictionarydicControls=newDictionary();publicstaticObjectobjSelected=newObject();publicstaticintctrlId=0;//TheserializationandDeserializati