Partage
  • Partager sur Facebook
  • Partager sur Twitter

Librairie Ical.net et concaténation de planning

    11 janvier 2018 à 17:55:46

    Bonjour,

    J'ai crée une classe property qui possède entre autre comme attribut un objet de type Calendar, définit dans la librairie Ical.Net. Cet attribut s'appelle calendar.

    Dans cette classe j'ai une methode "Update_Calendar"qui me permet de télécharger sur internet différents calendriers dans un dossier, les lire pour récupérer les évenements, et stocker tout ces événements dans mon attribut calendar.

    voici ma fonction : 

            public void Update_Calendar()
            {
                var Temp = new Ical.Net.Calendar(); 
    
                int i = 0;
                int j = 0;
                string icalText; 
                while (i < 5)
                {
                    if(Property_channel_URL[i] != "")
                    {
                       // try
                        //{
                            DownloadICS(Property_channel_URL[i], Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");
                            icalText = System.IO.File.ReadAllText(@"C:\chemindacces" + Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");                                       
                            Temp = Ical.Net.Calendar.Load(icalText);
                            while (j < Temp.Events.Count)
                            {
                                calendar.Events.Add(Temp.Events.ElementAt(j));
                                j++;
                            }
                        j = 0;
                       // } catch { }
                    }
                    i++;           
                }
            }

    Lors de l'exécution, j'obtiens le message d'erreur suivant : 

    System.NullReferenceException

      HResult=0x80004003

      Message=La référence d'objet n'est pas définie à une instance d'un objet.

      Source=<Impossible d'évaluer la source de l'exception>

      Arborescence des appels de procédure :

    <Impossible d'évaluer l'arborescence des appels de procédure de l'exception>

    Pourriez vous m'aider à trouver le problème car je ne comprend pas pourquoi ? 

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      11 janvier 2018 à 20:24:55

      Ben y'a un truc qui vaut null à un moment où ça devrait pas. Par contre quoi et quand la ça relève plus de la divination.

      Le mieux serait donc que tu exécutes le code en pas à pas et que tu inspectes les variables etc. à sa recherche ; une fois identifié il sera temps de chercher comment et pourquoi cette valeur inattendue se trouve là et donc y remédier

      • Partager sur Facebook
      • Partager sur Twitter
      Censément, quelqu'un de sensé est censé s'exprimer sensément.
        11 janvier 2018 à 21:30:54

        Effectivement j'ai oublié de préciser où se situe l'erreur.

        Elle se trouve à la ligne 19 lors de l'opération : calendar.Events.Add(Temp.Events.ElementAt(j));

        Cependant Temp.Events.ElementAt(j) N'a pas une valeur nulle, car il contient bien l’événement attendu...

        Update : 

        J'ai modifié légèrement le programme comme suit :

        public void Update_Calendar()
                {
                    var Temp = new Ical.Net.Calendar();
                    var e = new CalendarEvent();
                    int i = 0;
                    int j = 0;
                    string icalText; 
                    while (i < 5)
                    {
                        if (Property_channel_URL[i] != "")
                        {
                            // try
                            //{
                            DownloadICS(Property_channel_URL[i], Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");
                            icalText = System.IO.File.ReadAllText(@"C:\Chemminacces\" + Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");
                            Temp = Ical.Net.Calendar.Load(icalText);
                            while (j < Temp.Events.Count)
                            {
                                e = Temp.Events.ElementAt(j);
                                calendar.Events.Add(e);
                                j++;
                            }
                            j = 0;
                        }
                            
                            // catch { }
                        }
                            i++;            
                }



        Toujours le même soucis sur la ligne calender.Events.Add(e) ligne 20 alors que e contient l'événement...

        -
        Edité par Mortaurat 11 janvier 2018 à 22:00:01

        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2018 à 8:14:44

          Valeur de "calendar" ? de "calendar.Events" ? de "e" ? etc...
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Librairie Ical.net et concaténation de planning

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown