Для экспорта некоторых данных мы просто сериализуем объекты .Net, такие как список или коллекция, используя XmlSerializer. Мы используем что-то вроде этого:
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>
{
//....
}