加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何XML序列化对象列表数组?

发布时间:2020-12-15 21:33:32 所属栏目:百科 来源:网络整理
导读:当我尝试 XML序列化列表数组时,我收到这些错误. Unable to generate a temporary class (result=1). error CS1026: ) expected error CS1002: ; expected … error CS1525: Invalid expression term ‘)’ error CS1002: ; expected 这是我的代码: 这是触发
当我尝试 XML序列化列表数组时,我收到这些错误.

Unable to generate a temporary class (result=1). error CS1026: )
expected error CS1002: ; expected … error CS1525: Invalid expression
term ‘)’ error CS1002: ; expected

这是我的代码:

这是触发异常的方法.

public static string SerializeToString<T>(T obj)
{
    XmlSerializer serializer = new XmlSerializer(typeof(T));
    using (StringWriter writer = new StringWriter())
    {
        serializer.Serialize(writer,obj);
        return writer.ToString();
    }
}

这是传递给它的var:

List<Transaction>[] allTransactions = new List<Transaction>[20];

谢谢你的帮助.

[UPDATE]

public class TransactionCollection
{
    public List<Transaction>[] transactions;

    public TransactionCollection()
    {
    }

    public void Set(List<Transaction>[] t)
    {
        transactions = t;
    }
}

解决方法

我不确切地知道;错误有点令人沮丧.

但是,如果您宁愿完成某些事情而不是诊断问题,那么只需将列表转换为数组:

public void Run()
    {
        var allTransactions = new List<Transaction>[20];
        for (int i=0; i < allTransactions.Length; i++)
        {
            allTransactions[i] = new List<Transaction>();
        }
        var a = Array.ConvertAll(allTransactions,x => x.ToArray());
        var s = SerializeToString(a);
        System.Console.WriteLine("{0}",s);
    }

结果:

<ArrayOfArrayOfTransaction>
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
  <ArrayOfTransaction />
</ArrayOfArrayOfTransaction>

ps:您不需要将数组“包装”到包含类型中以便序列化它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读