Десериализовать файл XML в С#

IDE: Microsoft Visual Studio 2010 Язык: C#, XML

Я пытаюсь десериализовать файл XML в объект, но это выдает ошибку в документе XML (5,4). Есть предложения?

Вот код, который я пробовал...

   public void ReadXMLtblFieldingDetails(string xmlFileXDetails)
        {

            XmlSerializer serializer = new XmlSerializer(typeof(tblXDetails));
            TextReader reader = new StreamReader(xmlXDetails);
            object obj = serializer.Deserialize(reader);
            tblXDetails XmlData = (tblXDetails)obj;
            BusinessObjectManager.Add(XmlData); 

        }

И это XML-документ, который я хочу десериализовать...

<?xml version="1.0"?>
<tblXDetails xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RowModified>0001-01-01T00:00:00</RowModified>
  <MachineID>6A7FEBFDCEFC4DSSDAXX</MachineID>      
  <fielder1_x_axis>0</fielder1_x_axis>
  <fielder1_y_axis>0</fielder1_y_axis>
  <fielder2_x_axis>0</fielder2_x_axis>
  <fielder2_y_axis>0</fielder2_y_axis>
  <fielder3_x_axis>0</fielder3_x_axis>
  <fielder3_y_axis>0</fielder3_y_axis>
  <fielder4_x_axis>0</fielder4_x_axis>
  <fielder4_y_axis>0</fielder4_y_axis>
  <fielder5_x_axis>0</fielder5_x_axis>
  <fielder5_y_axis>0</fielder5_y_axis>
  <fielder6_x_axis>0</fielder6_x_axis>
  <fielder6_y_axis>0</fielder6_y_axis>
  <fielder7_x_axis>0</fielder7_x_axis>
  <fielder7_y_axis>0</fielder7_y_axis>
  <fielder8_x_axis>0</fielder8_x_axis>
  <fielder8_y_axis>0</fielder8_y_axis>
  <fielder9_x_axis>0</fielder9_x_axis>
  <fielder9_y_axis>0</fielder9_y_axis>
</tblxDetails>

Вот ошибка: Ошибка в XML-документе (5,4) // Недопустимое исключение операции не было обработано пользовательским кодом

класс tblXDetails:

public class tblXDetails
    {
        decimal _MachineID;
        float _fielder1_x_axis;
        float _fielder1_y_axis;
        float _fielder2_x_axis;
        float _fielder2_y_axis;
        float _fielder3_x_axis;
        float _fielder3_y_axis;
        float _fielder4_x_axis;
        float _fielder4_y_axis;
        float _fielder5_x_axis;
        float _fielder5_y_axis;
        float _fielder6_x_axis;
        float _fielder6_y_axis;
        float _fielder7_x_axis;
        float _fielder7_y_axis;
        float _fielder8_x_axis;
        float _fielder8_y_axis;
        float _fielder9_x_axis;
        float _fielder9_y_axis;
        public decimal MachineID
        {
            get { return _MachineID; }
            set { _MachineID = value; }
        }

        public float fielder1_x_axis
        {
            get { return _fielder1_x_axis; }
            set { _fielder1_x_axis = value; }
        }
        public float fielder1_y_axis
        {
            get { return _fielder1_y_axis; }
            set { _fielder1_y_axis = value; }
        }

        public float fielder2_x_axis
        {
            get { return _fielder2_x_axis; }
            set { _fielder2_x_axis = value; }
        }
        public float fielder2_y_axis
        {
            get { return _fielder2_y_axis; }
            set { _fielder2_y_axis = value; }
        }

        public float fielder3_x_axis
        {
            get { return _fielder3_x_axis; }
            set { _fielder3_x_axis = value; }
        }
        public float fielder3_y_axis
        {
            get { return _fielder3_y_axis; }
            set { _fielder3_y_axis = value; }
        }

        public float fielder4_x_axis
        {
            get { return _fielder4_x_axis; }
            set { _fielder4_x_axis = value; }
        }
        public float fielder4_y_axis
        {
            get { return _fielder4_y_axis; }
            set { _fielder4_y_axis = value; }
        }


        public float fielder5_x_axis
        {
            get { return _fielder5_x_axis; }
            set { _fielder5_x_axis = value; }
        }
        public float fielder5_y_axis
        {
            get { return _fielder5_y_axis; }
            set { _fielder5_y_axis = value; }
        }

        public float fielder6_x_axis
        {
            get { return _fielder6_x_axis; }
            set { _fielder6_x_axis = value; }
        }
        public float fielder6_y_axis
        {
            get { return _fielder6_y_axis; }
            set { _fielder6_y_axis = value; }
        }

        public float fielder7_x_axis
        {
            get { return _fielder7_x_axis; }
            set { _fielder7_x_axis = value; }
        }
        public float fielder7_y_axis
        {
            get { return _fielder7_y_axis; }
            set { _fielder7_y_axis = value; }
        }

        public float fielder8_x_axis
        {
            get { return _fielder8_x_axis; }
            set { _fielder8_x_axis = value; }
        }
        public float fielder8_y_axis
        {
            get { return _fielder8_y_axis; }
            set { _fielder8_y_axis = value; }
        }

        public float fielder9_x_axis
        {
            get { return _fielder9_x_axis; }
            set { _fielder9_x_axis = value; }
        }
        public float fielder9_y_axis
        {
            get { return _fielder9_y_axis; }
            set { _fielder9_y_axis = value; }
        }

person Harsh Kumar Singhi    schedule 07.01.2015    source источник
comment
Попробуйте прочитать эту ссылку с тем же вопросом: здесь   -  person arielhad    schedule 07.01.2015
comment
Трудно что-либо подсказать, если единственная ошибка, которую вы получаете в (5,4). Возможно, полное сообщение об ошибке даст возможность кому-то дать вам лучший совет, чем рекомендовать закрыть как дубликат.   -  person Alexei Levenkov    schedule 07.01.2015
comment
Начальный тег <tblXDetails> не совпадает с конечным тегом </tblxDetails>. Обратите внимание на характеры персонажей...   -  person Fung    schedule 07.01.2015
comment
Извините, но регистр верный... Пробовал менять регистр   -  person Harsh Kumar Singhi    schedule 07.01.2015
comment
@HarshKumarSinghi Вы должны проверить InnerException, что даст вам и другим более подробную информацию. Error in XML Document(5,4) указывает только на то, что что-то пошло не так рядом с первым тегом <fielder1_x_axis>   -  person Fung    schedule 07.01.2015
comment
Покажите нам класс tblXDetails. Бьюсь об заклад, некоторые значения несовместимы с базовыми типами tblXDetails.   -  person t3chb0t    schedule 07.01.2015
comment
Пожалуйста, взгляните на класс tblXDetails   -  person Harsh Kumar Singhi    schedule 07.01.2015


Ответы (1)


MachineID должен быть decimal (в соответствии с определением вашего класса), но в xml указано несовместимое значение: 6A7FEBFDCEFC4DSSDAXX. Если вы установите для него значение 1 в xml, сериализация пройдет. Боюсь, вам придется написать собственный (де)сериализатор или изменить тип MachineID, если это возможно.

person t3chb0t    schedule 07.01.2015