当我尝试
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:您不需要将数组“包装”到包含类型中以便序列化它们.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。