CodeAttribute2.InfoLocation, propriété
Obtient le modèle de code.
Espace de noms : EnvDTE80
Assembly : EnvDTE80 (dans EnvDTE80.dll)
Syntaxe
'Déclaration
ReadOnly Property InfoLocation As vsCMInfoLocation
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation
function get InfoLocation () : vsCMInfoLocation
Valeur de propriété
Type : EnvDTE.vsCMInfoLocation
Valeur de constante vsCMInfoLocation.
Notes
Si la propriété InfoLocation retourne vsCMInfoLocationProject, vous pouvez alors définir des propriétés, obtenir StartPoint, et EndPoint, etc.Si vous passez d'un objet de modèle de code (A) à un autre (B), par exemple d'une fonction à son type ou d'une classe à sa classe de base, il se peut que le type de B soit vsCMInfoLocationExternal si sa définition se trouve dans un autre projet.Cette disposition dépend de l'implémentation du modèle de code, du fait que le projet de l'objet B est implémenté dans le même langage que l'objet A, etc.
Si la propriété InfoLocation retourne vsCMInfoLocationExternal, les informations ne sont disponibles qu'à partir de métadonnées d'une DLL ou de sources figées.Vous pourrez peut-être obtenir StartPoint et EditPoint, mais vous ne pourrez pas modifier le document.Autrement dit, vous ne pouvez pas définir de propriétés ni modifier de texte derrière l'élément de code.
Si InfoLocation retourne vsCMInfoLocationNone, le seul élément disponible est un objet de modèle de code possédant un nom.En outre, selon le contexte du code source, il peut être possible de déterminer si le nom est une classe ou une interface.Dans cette situation, cependant, comme le modèle de code ne peut pas convertir le nom en informations réelles, l'objet est inutile.
[!REMARQUE]
Les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterminables après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées.Pour plus d'informations, consultez la section Les valeurs d'élément de modèle de code peuvent être modifiées de la rubrique Découverte de code à l'aide du modèle de code (Visual Basic).
Exemples
L'exemple suivant crée un espace de noms et un attribut dans la classe actuelle, et répertorie certaines des propriétés de l'attribut.
public void CreateClassAndAttrib(DTE2 applicationObject)
{
// Before running, load or create a project.
FileCodeModel2 fcm2 = GetFileCodeModel(applicationObject);
CodeAttribute2 cmAttribute;
CodeClass2 cmClass;
String msg = null;
if (fcm2 != null)
{
CodeNamespace cmNamespace;
// Try to create a new namespace.
try
{
cmNamespace = fcm2.AddNamespace("CMNamespace", -1);
// If successful, create the other code elements.
if (cmNamespace != null)
{
cmClass = (CodeClass2)cmNamespace.AddClass("ANewClass",
-1, null, null, vsCMAccess.vsCMAccessPrivate);
cmAttribute = (CodeAttribute2)cmClass.AddAttribute
("NewAttribute", "AttributeValue", -1);
msg += "InfoLocation: " + cmAttribute.InfoLocation +
Environment.NewLine;
msg += "IsCodeType?: " + cmAttribute.IsCodeType +
Environment.NewLine;
msg += "Kind: " + cmAttribute.Kind +
Environment.NewLine;
MessageBox.Show(msg);
}
else
{
MessageBox.Show("Cannot continue - no filecodemodel
available.");
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex);
}
}
}
public FileCodeModel2 GetFileCodeModel(DTE2 applicationObject)
{
// Returns the FileCodeModel object of the active
// window.
TextWindow txtWin =
(TextWindow)applicationObject.ActiveWindow.Object;
FileCodeModel2 fcm2;
if (txtWin != null)
{
try
{
fcm2 = (FileCodeModel2)txtWin.Parent.
ProjectItem.FileCodeModel;
return fcm2;
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex);
return null;
}
}
else
return null;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Autres ressources
Comment : compiler et exécuter les exemples de code du modèle objet Automation
Découverte de code à l'aide du modèle de code (Visual Basic)