Точка сериализации объекта заключается в сохранении состояния объекта и последующем его восстановлении. Поля объектов сопоставляются с элементами и атрибутами XML и наоборот. XMLSerializer не отображает ничего для комментариев или наоборот, поэтому вы не можете десериализовать комментарии ни к чему в своем объекте.
Однако, если вы используете XmlReader (как @Amigable said), который вы передаете методу Deserialize(), вы можете использовать этот XmlReader to separately traverse the tree для поиска комментариев.
К сожалению, это затрудняет подключение комментариев к десериализованным элементам, но, возможно, вы можете использовать обработчики событий десериализации, чтобы помочь с этим.
Update: немного разработки на использование XmlReader с десериализацией:
Вы перечислен кодом, как:
XmlSerializer objSer = new XmlSerializer(typeof(CustomSchema));
StreamReader srmRdr = new StreamReader("Test.XML");
objForm = (CustomSchema)objSer.Deserialize(srmRdr);
Я ничего о .NETCF или WM не знаю. (Я ничего не знал о XmlSerializer, но я просто смотрю на the docs.) Однако вот что я пытался описать выше.
Я думал, что вы можете использовать XmlReader для Deserialize(), а затем повторно использовать его, но, по-видимому, он только для переходов и поэтому не может быть сброшен в начало. Так После вашей десериализации, повторно открыть «test.xml» с XmlReader:
XmlReader xmlRdr = XmlReader.Create("Test.XML");
Затем используйте синтаксический code shown here:
// Parse the file
while (xmlRdr.Read())
{
switch (xmlRdr.NodeType)
{
case XmlNodeType.Element:
// You may need to capture the last element to provide a context
// for any comments you come across... so copy xmlRdr.Name, etc.
break;
case XmlNodeType.Comment:
// Do something with xmlRdr.value
измените это так, чтобы ваши XML и XML комментарии отображаются (Использование обратный символ для маркировки блоков кода) – Spudley
Что именно вы ожидаете от комментариев, чтобы получить десериализацию? Кодовый комментарий? – Oded
Укажите, пожалуйста, используемую вами библиотеку. .NET System.Xml.Serialization package? – LarsH