none
Additional information: Referência de objeto não definida para uma instância de um objeto. RRS feed

  • Pergunta

  • Pessoal,

    Alguém pode me ajudar com esse erro ? O objeto já está inicializado.

    Segue abaixo o código  e deixarei em NEGRITO onde está ocorrendo o erro

           private AttendanceStatusType AttendanceStatus()
            {
                //Abrindo o XML
                XmlDocument xml = new XmlDocument();
                xml.Load(
                    @"XML\ReportVehicleAssistanceRequest.xml");
    
                //Obtendo qual Tag irá percorrer.
                XmlNodeList xnListServiceSchedule = xml.GetElementsByTagName("ServiceSchedule");
                XmlNodeList xnListAttendance = xml.GetElementsByTagName("AttendanceStatus");
    
                //Instanciando a Classe com os parâmetros.
                ReportVehicleAssistanceRequest rvr = new ReportVehicleAssistanceRequest();
    
                //1. Instanciando o Serviço AttendanceStatusType;
                var AttendanceStatus = new AttendanceStatusType();
                var array = new AttendanceStatusType[10];
    
    
                //Buscando e Preenchendo AttendanceStatus
                foreach (XmlNode xnServiceSchedule in xnListServiceSchedule)
                {
    
                    foreach (XmlNode xnAttendance in xnListAttendance)
                    {
                        for (int i = 0; i <= xnListServiceSchedule.Count; i++)
                        {
                            rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText,
                                "yyyy-MM-ddTHH:mm:ss",
                                null);
                            rvr.DealerCodeA[i] = Convert.ToInt32(xnAttendance["DealerCode"].InnerText);
    
                            var DealerNameA = xnAttendance["DealerName"];
                            if (DealerNameA != null)
                                rvr.DealerNameA[i] = DealerNameA.InnerText;
    
                            rvr.AdvisorCodeA[i] = Convert.ToInt32(xnAttendance["AdvisorCode"].InnerText);
    
                            var AdvisorNameA = xnAttendance["AdvisorName"];
                            if (AdvisorNameA != null)
                                rvr.AdvisorNameA[i] = AdvisorNameA.InnerText;
    
                            var AdvisorNationalIDA = xnAttendance["AdvisorNationalID"];
                            if (AdvisorNationalIDA != null)
                                rvr.AdvisorNationalIDA[i] = AdvisorNationalIDA.InnerText;
    
                            rvr.StatusComplement[i] = xnAttendance["StatusComplement"].InnerText;
                        }
                    }
                }
    
                for (int i = 0; i <= xnListServiceSchedule.Count; i++)
                {
                    AttendanceStatus.Scheduling = rvr.SchedulingA[i];
                    AttendanceStatus.Dealer = new DealerType();
                    AttendanceStatus.Dealer.Code = rvr.DealerCodeA[i];
                    AttendanceStatus.Dealer.Name = rvr.DealerNameA[i];
                    AttendanceStatus.Advisor = new AdvisorType();
                    AttendanceStatus.Advisor.Code = rvr.AdvisorCodeA[i];
                    AttendanceStatus.Advisor.Name = rvr.AdvisorNameA[i];
                    AttendanceStatus.Advisor.NationalID = rvr.AdvisorNationalIDA[i];
                    AttendanceStatus.StatusComplement = rvr.StatusComplement[i];
    
                    array[0] = AttendanceStatus;
                 }
                return array[0];
            }



    quarta-feira, 8 de abril de 2015 11:03

Respostas

  • Yannick,

    Vc tentou fazer a seguinte atribuição:

                            rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText,
                                "yyyy-MM-ddTHH:mm:ss",
                                null);

    Só que antes vc criou a variável rvr, mas não definiu um array com um tamanho pré-definido para a propriedade SchedulingA:

               //Instanciando a Classe com os parâmetros.
                ReportVehicleAssistanceRequest rvr = new ReportVehicleAssistanceRequest();


    quarta-feira, 8 de abril de 2015 14:26
  • Yannick,

    Mas em que momento vc associa um array à propriedade SchedulingA? A simples declaração desta propriedade no tipo ReportVehicleAssistanceRequest significa assumir null como valor.

    Se vc não instanciar um array e associá-lo a SchedulingA, em teoria o problema irá persistir.

    • Marcado como Resposta Yannick Freitas quarta-feira, 8 de abril de 2015 17:51
    quarta-feira, 8 de abril de 2015 16:36


  • //Buscando e Preenchendo AttendanceStatus foreach (XmlNode xnServiceSchedule in xnListServiceSchedule) { foreach (XmlNode xnAttendance in xnListAttendance) { rvr.SchedulingA = new DateTime[xnListServiceSchedule.Count];//CRIAR ARRAY AQUI

    for (int i = 0; i < xnListServiceSchedule.Count; i++) { rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText, "yyyy-MM-ddTHH:mm:ss", null);

    Será preciso seguir a mesma lógica para os outros arrays dentro do loop foreach.

    • Marcado como Resposta Yannick Freitas quarta-feira, 8 de abril de 2015 17:14
    quarta-feira, 8 de abril de 2015 17:12

Todas as Respostas

  • Yannick,

    Vc tentou fazer a seguinte atribuição:

                            rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText,
                                "yyyy-MM-ddTHH:mm:ss",
                                null);

    Só que antes vc criou a variável rvr, mas não definiu um array com um tamanho pré-definido para a propriedade SchedulingA:

               //Instanciando a Classe com os parâmetros.
                ReportVehicleAssistanceRequest rvr = new ReportVehicleAssistanceRequest();


    quarta-feira, 8 de abril de 2015 14:26
  • Yannick,

    Vc tentou fazer a seguinte atribuição:

                            rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText,
                                "yyyy-MM-ddTHH:mm:ss",
                                null);

    Só que antes vc criou a variável rvr, mas não definiu um array com um tamanho pré-definido para a propriedade SchedulingA:

               //Instanciando a Classe com os parâmetros.
                ReportVehicleAssistanceRequest rvr = new ReportVehicleAssistanceRequest();


    Renato,

    Mas, ela está nessa classe:

        public class ReportVehicleAssistanceRequest
        {
    
            // INÍCIO ATTENDANCESTATUS
            public string[] StatusComplement { get; set; } //Conterá informações adicionais referentes ao status descrito acima.
            public DateTime[] SchedulingA { get; set; } //Data e hora reservado (agendado) para o cliente.
            public int[] DealerCodeA { get; set; } //Código do Distribuidor.
            public string[] DealerNameA { get; set; } //Nome do Distribuidor.
            public int[] AdvisorCodeA { get; set; } //Código do Consultor.
            public string[] AdvisorNameA { get; set; } //Nome do Consultor.
            public string[] AdvisorNationalIDA { get; set; } //CPF do Consultor.
            // FIM ATTENDANCESTATUS
         }

    quarta-feira, 8 de abril de 2015 16:07
  • Yannick,

    Mas em que momento vc associa um array à propriedade SchedulingA? A simples declaração desta propriedade no tipo ReportVehicleAssistanceRequest significa assumir null como valor.

    Se vc não instanciar um array e associá-lo a SchedulingA, em teoria o problema irá persistir.

    • Marcado como Resposta Yannick Freitas quarta-feira, 8 de abril de 2015 17:51
    quarta-feira, 8 de abril de 2015 16:36


  • //Buscando e Preenchendo AttendanceStatus foreach (XmlNode xnServiceSchedule in xnListServiceSchedule) { foreach (XmlNode xnAttendance in xnListAttendance) { rvr.SchedulingA = new DateTime[xnListServiceSchedule.Count];//CRIAR ARRAY AQUI

    for (int i = 0; i < xnListServiceSchedule.Count; i++) { rvr.SchedulingA[i] = DateTime.ParseExact(xnAttendance["Scheduling"].InnerText, "yyyy-MM-ddTHH:mm:ss", null);

    Será preciso seguir a mesma lógica para os outros arrays dentro do loop foreach.

    • Marcado como Resposta Yannick Freitas quarta-feira, 8 de abril de 2015 17:14
    quarta-feira, 8 de abril de 2015 17:12