我有List<Object>
我尝试使用XmlSerializer
序列化并保存到磁盘,但是这段代码在尝试序列化文件时会产生错误。
根据我得到的抛出错误信息,我在这里看不出任何错误,我想我需要额外的一双眼睛。
有没有人知道为什么这让我彻夜难眠? :/
我知道列表包含元素,所以这些类型可能出现问题?试过Type[]
,但它也给出了同样的问题。
public static void createFileXml(String path)
{
//This creates an error while serializing
XmlSerializer xmlser = new XmlSerializer(typeof(List<Object>));
TextWriter txtwrt = new StreamWriter(path);
try
{
xmlser.Serialize(txtwrt, lstCopy);
}
catch
{
throw;
}
finally
{
if (txtwrt != null)
{
txtwrt.Close();
}
}
}
答案 0 :(得分:1)
我有一个通用的serializeobject方法,我写了一会儿。也许它会帮助你。
public static string SerializeObject<T>(T obj)
{
try
{
string xmlString = null;
using (MemoryStream memoryStream = new MemoryStream())
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
UTF8Encoding enc = new UTF8Encoding();
using (StreamWriter writer = new StreamWriter(memoryStream, enc))
{
XmlSerializer xs = new XmlSerializer(typeof(T));
xs.Serialize(writer, obj, ns);
}
xmlString = enc.GetString(memoryStream.ToArray());
return xmlString;
}
}
catch
{
return string.Empty;
}
}
注意:您可能需要根据需要进行更改。