当我尝试对列表数组进行 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/