小编Pat*_*ton的帖子

XML序列化 - .NET 4.0中的不同结果

请参阅下面的代码,将XML写入文件包含一个包含3个对象列表的简单类.列表中的3个对象相互下降,Base,Derived1,Derived2.我在序列化期间使用XMLArrayItemAttributes覆盖名称.这在.NET 3.0中运行良好,但现在在.NET 4.0中输出不同的结果.请参阅下面的输出,特别注明第二个后代项DerivedItem2.

有没有人有这方面的经验以及我如何修复它在.NET 4.0中工作,就像在v3.5中一样?

似乎我无法控制数组项被覆盖的顺序.它似乎不是将它们添加到XMLArrayItems的顺序.

编辑:我刚刚尝试使用MONO对框架版本4.0和4.5的相同示例,它适用于那些.这可能只是微软框架版本的一个错误吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;
using System.IO;


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        TestGroup g = new TestGroup();
        XmlSerializer s = new XmlSerializer(typeof(TestGroup), g.GetOverrides());
        TextWriter w = new StreamWriter("c:\\#\\test.xml");
        s.Serialize(w, g);
        w.Close();
    }
}


public class TestGroup
{ …
Run Code Online (Sandbox Code Playgroud)

.net c# xml serialization xml-serialization

22
推荐指数
1
解决办法
2048
查看次数

标签 统计

.net ×1

c# ×1

serialization ×1

xml ×1

xml-serialization ×1