Tag: xml serialization

重写属性上的.net XmlSerializer

我有一个带有抽象属性的基类: public abstract int ID {get;set;} 现在,我有一个子类,它是XmlSerialized。 所以它有: [XmlElement(“something”)] public override int ID { get { //… } set { //… } } 我无法将XmlElement属性移动到baseclass,因为每个子类都有不同的xml元素名称。 现在,当我反序列化这个类时,我收到以下错误: 成员’Subclass.ID’隐藏inheritance的成员’BaseClass.ID’,但具有不同的自定义属性。 我能做什么?

如何为List 实现设置XmlArrayItem元素名称?

我想创建一个自定义XML结构,如下所示: 为了能够做到这一点,我创建了List的实现。 我的代码如下: [XmlRootAttribute(ElementName=”Hotels”)] public class HotelList: List 因为List所持有的类不是名为Hotel而是HotelBasic我的xml就像 如何在不必实现ISerializable或IEnumerable情况下解决这个问题?

为什么XmlWriter总是输出utf-16编码?

我有这种扩展方法 public static string SerializeObject(this T value) { var serializer = new XmlSerializer(typeof(T)); var settings = new XmlWriterSettings { Encoding = new UTF8Encoding(true), Indent = false, OmitXmlDeclaration = false, NewLineHandling = NewLineHandling.None }; using(var stringWriter = new StringWriter()) { using(var xmlWriter = XmlWriter.Create(stringWriter, settings)) { serializer.Serialize(xmlWriter, value); } return stringWriter.ToString(); } } 但每当我调用它时,它的编码为utf-16指定,即 。 我究竟做错了什么?

将memorystream对象序列化为字符串

现在我正在使用XmlTextWriter将MemoryStream对象转换为字符串。 但我不知道是否有更快的方法将内存流序列化为字符串。 我按照此处给出的代码进行序列化 – http://www.eggheadcafe.com/articles/system.xml.xmlserialization.asp 编辑 流到字符串 ms.Position = 0; using (StreamReader sr = new StreamReader(ms)) { string content = sr.ReadToEnd(); SaveInDB(ms); } String to Stream string content = GetFromContentDB(); byte[] byteArray = Encoding.ASCII.GetBytes(content); MemoryStream ms = new MemoryStream(byteArray); byte[] outBuf = ms.GetBuffer(); //error here

有没有办法将对象(及其属性)序列化为xml?

创建一个类(称之为FormElement)。 该类应该具有一些属性,例如它们与数据元素(名称,序列号,值 – 只是一个字符串等)的元数据。 此类具有Validation Application Block Validation类型的属性。 我想将它序列化为xml并反序列化它。 validation包括validation应用程序块属性的类的所有属性是否在序列化后继续存在。 一些建议?

我可以动态地将XmlIgnore应用于ArrayItem的属性吗?

我试图序列化List ,其中T:EntityObject,并希望从列表中的项目中省略所有EntityKey和其他EntityReference属性。 可以使用XmlAttributeOverrides动态完成吗? 据我所知,XmlAttributeOverrides选项只指向顶级对象,即List 而不是T本身,这对我没有多大帮助。 有人能指出我动态忽略ArrayItems属性的方法吗? 这是一个我一直在使用的一个简单的例子,它不使用EntityObjects,但它应该说明我想做的事情: public class Car { public String Make { get; set; } public String Model { get; set; } public Double EngineSize { get; set; } } [Test] public void WouldLoveToDynamicallyLeaveOutMembersOfArrayItems() { var cars = new List { new Car { Make = “Ferrari”, Model = “F1”, EngineSize = […]

你能强制将枚举值序列化为整数吗?

可能重复: 如何将枚举值序列化为int? 大家好! 我想知道是否有办法强制将枚举值序列化为整数值,而不是其字符串表示forms。 让你进入上下文:我们在一个严重依赖Web服务的Web应用程序中使用我们所有请求头的单个基类,与请求的类型无关。 我想在标题中添加一个Result字段,因此我们可以将提示传递回调用应用程序,以了解操作在Web服务端的运行方式。 我们已经有一个枚举声明,但由于我们有遗留应用程序调用那些可能不知道这些枚举的Web服务,我想将这些值序列化为整数。 我们已经不得不通过使用[XmlElement(ElementName =“string representationOfAttributeName”)]来减少这些头的长度,因为我们偶尔会超过IE最大URL长度,我想知道是否有类似的属性来强制序列化枚举值为整数。 有没有人听说过这样的属性? 一如既往,感谢Pascal的帮助

XML反序列化和松散数组项

所以我正在处理一些我认为很可能形成的XML文件,我正在试图弄清楚如何以及是否可以使用XmlSerializer将此XML反序列化为逻辑业务对象。 假设我有以下XML文件: 现在我想创建一个具有Root,ArrayType1和ArrayType2这三种类型的类,但是我想在Root中获取两个列表,一个包含ArrayType1项的集合,另一个包含ArrayType2项的集合,但似乎这些项目需要有某种根,例如,我知道如何反序列化以下内容: 但是,如果没有围绕ArrayType#元素的父ArrayType#Collection元素,我将如何反序列化? XML Serializer甚至会允许这个吗?

XML到C#类

有人能给我一些建议吗? 我正在咨询的API会生成如下模式: AppServer.network.lcpdfr.com 1000 1305910998 a0f1f6bea66f75de574babd242e68c47 1 1 9 Jay jaymac407 1305900497 Masterson St Test false #Global Chat# 1cfdff1aaa520348d0a62c87ae9717d3 如何从C#中获取所有消息?

使用数组名称包装序列化数组元素

我使用的是VSTS2008 + C#+ .Net 3.0。 我使用下面的代码来序列化XML,我的对象包含数组类型属性,我想在下面的预期结果中添加一个额外的元素’layer(“MyInnerObjectProperties”元素层),我想将“MyInnerObjectProperties”元素作为父元素所有MyInnerObjectProperty元素的元素)。 有任何想法吗? 当前的序列化XML, Foo Type Goo Type 预期的序列化XML, Foo Type Goo Type 目前的代码, public class MyClass { private MyObject[] _myObjectProperty; [XmlElement(IsNullable=false)] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } } public class MyObject { private MyInnerObject[] _myInnerObjectProperty; [XmlElement(IsNullable = false)] public MyInnerObject[] […]