【发布时间】:2011-03-09 11:31:33
【问题描述】:
对于某些数据导出,我们所做的只是使用 XmlSerializer 序列化 .Net 对象,例如列表或集合。我们使用这样的东西:
public static bool WriteToXMLFile(string fullFileNameWithPath, Object obj, Type ObjectType)
{
TextWriter xr = null;
try
{
XmlSerializer ser = new XmlSerializer(ObjectType);
xr = new StreamWriter(fullFileNameWithPath);
ser.Serialize(xr, obj);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if(xr != null)
xr.Close();
}
return true;
}
对于一个类型的列表,生成的 XML 如下所示:
<ArrayOfMyObjects>
<MyObject>
//content here
</MyObject>
</ArrayOfMyObjects>
但是另一边的期望(这个文件的接收者是这样的:
<MT_MyObjects>
<MyObject>
//content here
</MyObject>
</MT_MyObjects>
那么如何在序列化时将 ArrayOfMyObjects 更改为 MT_MyObjects?我知道也可以使用一些 Regx 替换来完成。但我不想稍后再碰输出。
更新:解决方案:
我终于可以这样解决问题了:
[Serializable]
[XmlRoot("MT_LoadProfile")]
public class LoadProfArray : List<LoadProfile>
{
//....
}
【问题讨论】:
-
你的类定义在哪里?放一个sn-p。这也是您尝试序列化的列表吗?
标签: .net xmlserializer