Bonjour,

je n'en crois pas mes yeux : j'ai une fonction en vb.NET qui ne marche QUE si elle a un point d'arrêt. Diabolique.
Il s'agit de lire un petit fichier XML, grâce à la classe XmlTextReader. La propriété .Name du lecteur ne semble pas mise à jour lorsqu'il n'y a pas de point d'arrêt...

Voici mon code vb (un extrait) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
            Do : Loop While (.Read() AndAlso (.Name <> "unites_oeuvre"))
'pour trouver la balise ouvrante de ma liste d'unités d'oeuvres
            If (Not .IsEmptyElement) Then
                Do While (.Read())
                    If (.Name = "uo") Then
                        objUO = New unite_oeuvre('GetAttribute(blablabla))
'les attributs donnent les paramètres du constructeur de ma classe
                        .unites_oeuvre.Add(objUO)
 'ajout dans une collection
                    Else : Exit Do
                    End If
                Loop
            End If
et le bout de Xml que c'est censé lire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
  <unites_oeuvre>
    <uo nom="UO_Test" id="38" description="test38" />
    <uo nom="UO_Test_" id="39" description="test39" />
  <unites_oeuvres />
En pas à pas, ou même avec un point d'arrêt juste avant la condition .Name="uo", ça marche, mais sinon la boucle n'est jamais exécutée (.Name="uo" s'évalue toujours à faux).

Pour info, j'utilise vs 2003. Est-ce quelqu'un a une idée de l'origine du problème ? Parce que moi je vois vraiment pas... Le plus drôle, c'est que je peux pas déboguer (puisque quand je veux voir d'un peu plus près, ça marche...)

Merci d'avance !

--
Rom1