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

标签 c# xml exception xml-serialization

当我尝试对列表数组进行 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();
    }
}

这是传递给它的变量:

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

感谢您的帮助。

[更新]

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:您不需要将数组“包装”到包含类型中以序列化它们。

关于c# - 如何 XML 序列化对象列表数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391959/

相关文章:

XML Schema key/keyref - 如何使用它们?

c++ - C++错误代码vs ASSERTS vs Exceptions选项options :( [closed]

java - 错误页面返回状态代码 200 默认响应

javascript - 使用 Javascript 附加 <head> 元素适用于 .innerHTML,但不适用于 XML 子节点

sql-server - 如何使用 MSSQL 更新多个 XML 字段?

c# - Linq2SQL,异常后使用dataContext

c# - 如何设计数据库接口(interface)

c# - 如何获取此元素的 xpath?

c# - 具有大量部分静态类的 VS2008 智能感知性能问题

c# - Folder.WellKnownFolderName 在 EWS 托管 API 和 Exchange 2013 中为空