я обновил вопрос @ xml content changed after serialization & deserialization want to pass in xml to map objectXml Content Изменен После Сериализация и десериализации
Любая помощь будут оценены. Большое спасибо.
Я новичок во всем этом: Я пытаюсь передать в xml-файл с помощью кнопки поиска веб-приложения на службу, позвонить и затем запустить ее.
Я искал и сделал следующее:
string InputFilePath = FileUpload1.PostedFile.FileName;
MyServiceTypeClass _MyServiceTestObj = new MyServiceTypeClass();
XmlSerializer SerializerObj = new XmlSerializer(typeof(MyServiceTypeClass));
StreamWriter WriteFileStream = new StreamWriter(@InputFilePath);
SerializerObj.Serialize(WriteFileStream, _MyServiceTestObj);
WriteFileStream.Close();
FileStream XmlStream = new FileStream(@InputFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
MyServiceTypeClass _ServiceTypeLoaded = (MyServiceTypeClass)SerializerObj.Deserialize(XmlStream);
XmlStream.Close();
После того как я запустить его и загрузить файл XML, я обнаружил, что _ServiceTypeLoaded
поля почти все нуль для полей. И содержимое файла xml было изменено после выполнения вышеуказанных строк. _ServiceTypeLoaded
имеет только 3 поля не null
, а файл xml был изменен в другом формате с отсутствием большого количества тегов.
Некоторые Подробнее:
MyServicetypeClass
структура:
MyServiceTypeClass
унаследованы от класса А и имеет некоторые из своих членов; Класс A унаследовал форму класса B и имеет некоторые из его собственных членов; Класс B унаследован от класса C и имеет свои собственные члены и т. Д. В отношениях есть 5 слоев.
Могли бы вы предоставить больше код? Как для 'MyServiceTypeClass'. – meilke
Это почти наверняка из-за неправильного использования атрибутов сериализации в вашем классе ... попробуйте упростить свою ситуацию до одного уровня наследования с несколькими членами ... если у вас все еще есть проблема, вы можете опубликовать свою простую воспроизводимую проблему для других помочь. Вы также можете рассмотреть использование DataContractSerializer в качестве обычно предпочтительного класса сериализации, и в этом случае атрибуты будут отличаться, однако у вас будет меньше контроля над формой XML. – TCC
спасибо. В моем случае переданные в xmls уже предварительно обработаны, чтобы соответствовать типу службы. Я просто хочу передать в xmls и передать значения, хранящиеся в нем, на объект в C#. Нужно ли в этом случае выполнять сериализацию и десериализацию? или достаточно одного из них? В любом случае, есть ли простой способ для меня сериализовать его? Поскольку существует много типов serviceclass, и будет слишком много работы, если я вручную сериализую для каждого из них. Большое спасибо. – user2751691