在C#中,我怎样才能序列化问答LT;>? (.NET 2.0)问答、序列化、LT、NET

2023-09-04 23:55:31 作者:innocent(天真)

目前XmlSerializer的构造线的下方会导致一个InvalidOperationException,这也抱怨没有实现的泛型类型默认accesor。

 问答LT;迈德特> myDataQueue =新问答LT;迈德特>();

//这里填充队列


XmlSerializer的mySerializer =
  新的XmlSerializer(myDataQueue.GetType());

StreamWriter的myWriter =新的StreamWriter(myData.xml);
mySerializer.Serialize(myWriter,myDataQueue);
myWriter.Close();
 

解决方案

这将是更容易(和更合适的IMO)来序列从队列中的数据的 - 也许在一个平面阵列或名单,其中,T> 。由于问答LT; T> 工具的IEnumerable< T> ,你应该能够使用:

 名单,其中,T>名单=新的名单,其中,T>(队列);
 
你需要了解的有关.NET日期时间的必要信息

At the XmlSerializer constructor line the below causes an InvalidOperationException which also complains about not having a default accesor implemented for the generic type.

Queue<MyData> myDataQueue = new Queue<MyData>();

// Populate the queue here


XmlSerializer mySerializer =
  new XmlSerializer(myDataQueue.GetType());    

StreamWriter myWriter = new StreamWriter("myData.xml");
mySerializer.Serialize(myWriter, myDataQueue);
myWriter.Close();

解决方案

It would be easier (and more appropriate IMO) to serialize the data from the queue - perhaps in a flat array or List<T>. Since Queue<T> implements IEnumerable<T>, you should be able to use:

List<T> list = new List<T>(queue);