Numéro d'article: 907963 - Dernière mise à jour: mercredi 14 mars 2007 - Version: 1.4

Vous ne pouvez pas accéder aux champs pour les types qui sont définis dans une classe partielle lorsque vous utilisez le modèle de code Visual Basic pour étendre Visual Studio 2005

Sommaire

Agrandir tout | Réduire tout

Symptômes

Lorsque vous utilisez le modèle de code Visual Basic pour étendre Visual Studio 2005, vous ne pouvez pas accédez champs des types qui sont définis dans une classe partielle. Ce problème se produit lorsque vous utilisez le membre CodeType de l'interface CodeTypeRef .

Cause

Ce problème se produit car le membre CodeType est définie sur null lorsque la définition qui fait référence au membre CodeType n'est pas définie dans le premier segment d'une classe partielle qui analyse le modèle de code.

Résolution

Pour résoudre ce problème, appliquez l'une des méthodes suivantes :
  • Placez le second segment de la classe partielle dans un fichier source qui possède un nom qui apparaît dans l'ordre alphabétique avant du fichier source qui contient la première déclaration de la classe partielle.
  • Atteindre la définition qui fait référence au membre CodeType le premier segment de la classe partielle. Utilisez cette méthode lorsque plusieurs segments d'une classe partielle apparaissent dans le même fichier. L'exemple de code suivant montre comment pour ce faire.
    Partial Friend Class SomeDataSet
        
        Friend Class SomeTableRow
    
        End Class
    
    End Class
    
    Partial Friend Class SomeDataSet
    
    
    End Class

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Procédure pour reproduire le problème

  1. Créer une bibliothèque de classes Visual Basic.
  2. Ajoutez du code qui est similaire à l'exemple de code dans le fichier Class1.vb suivant.
    Partial Friend Class SomeDataSet
    
    End Class
    
    Partial Friend Class SomeDataSet
    
        Friend Class SomeTableRow
    
        End Class
    
    End Class
    
    Public Class SomeObject
    
        Friend Sub Sub1()
    
        End Sub
    
        Private mDataRow As SomeDataSet.SomeTableRow
    
    End Class
  3. Dans le menu Outils , pointez sur macros , puis cliquez sur ÉDITEUR de macros . Les macros IDE s'affiche.
  4. Dans le menu Affichage de L'ÉDITEUR de macros, cliquez sur Explorateur de projets .
  5. Dans l'Explorateur de projets, développez MyMacros .
  6. Double-cliquez sur Module1 .
  7. Ajouter l'exemple de code suivant au fichier de module.
    Sub Macro1()
    	Dim cv As CodeVariable = DTE.ActiveDocument.Selection.ActivePoint.CodeElement(vsCMElement.vsCMElementVariable)
    	MsgBox(cv.Type.CodeType.FullName)
    End Sub
  8. Fermez L'ÉDITEUR de macros.
  9. Dans la bibliothèque de classes Visual Basic, placez le point d'insertion sur mDataRow .
  10. Dans le menu Outils de l'IDE de Visual Studio, pointez sur macros , puis cliquez sur Explorateur de macro . Explorateur de macro s'affiche.
  11. Dans l'Explorateur de macro, développez MyMacros , puis puis développez Module1 .
  12. Dans Explorateur de macro, cliquez avec le bouton droit sur Macro1 , puis cliquez sur Exécuter .
Pour plus d'informations relatives au membre CodeType , consultez le MSDN (Microsoft Developer Network) suivant site :
http://msdn2.microsoft.com/en-us/library/0c5t3tay(en-US,VS.80).aspx (http://msdn2.microsoft.com/en-us/library/0c5t3tay(en-US,VS.80).aspx)
Pour plus d'informations sur Visual Studio Team System, reportez-vous au site Web MSDN suivant :
http://msdn2.microsoft.com/en-us/teamsystem/default.aspx (http://msdn2.microsoft.com/en-us/teamsystem/default.aspx)
Pour plus d'informations sur les tests d'unités, reportez-vous au site Web MSDN suivant site :
http://msdn2.microsoft.com/en-us/library/ms364064(vs.80).aspx (http://msdn2.microsoft.com/en-us/library/ms364064(vs.80).aspx)

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Studio 2005 Team System Architect Edition
Mots-clés : 
kbmt kbbug kbtshoot kbprb KB907963 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 907963  (http://support.microsoft.com/kb/907963/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles