Proprietà CodeAttribute2.InfoLocation
Ottiene il modello di codice.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
ReadOnly Property InfoLocation As vsCMInfoLocation
Get
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation
function get InfoLocation () : vsCMInfoLocation
Valore proprietà
Tipo: EnvDTE.vsCMInfoLocation
Valore costante di vsCMInfoLocation.
Implementa
Note
Se la proprietà InfoLocation restituisce vsCMInfoLocationProject, è possibile impostare proprietà, ottenere StartPoint, EndPoint e così via. Quando si passa da un oggetto (A) del modello di codice a un oggetto (B), ad esempio da una funzione al relativo tipo o da una classe alla relativa classe base, B può essere di tipo vsCMInfoLocationExternal se la relativa definizione è inclusa in un altro progetto. La disposizione varia in base all'implementazione del modello di codice, a seconda che il progetto dell'oggetto B venga implementato nello stesso linguaggio utilizzato per quello dell'oggetto A e così via.
Se la proprietà InfoLocation restituisce vsCMInfoLocationExternal, le informazioni saranno disponibili solo dai metadati in una DLL o da origini bloccate. È possibile ottenere un StartPoint e un EditPoint, ma non è possibile modificare il documento. In altre parole, non è possibile impostare proprietà o modificare il testo sottostante l'elemento di codice.
Se la proprietà InfoLocation restituisce vsCMInfoLocationNone, sarà disponibile un oggetto modello di codice con un nome. In base al contesto del codice sorgente, inoltre, è talvolta possibile determinare se il nome deve corrispondere a una classe o a un'interfaccia. In questo caso, tuttavia, l'oggetto si rivela inutile in quanto il modello di codice non è riuscito a risolvere il nome in informazioni reali.
Nota
I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori. Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).
Esempi
Nell'esempio riportato di seguito vengono creati uno spazio dei nomi e un attributo nuovi nella classe corrente e vengono elencate alcune proprietà dell'attributo.
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;
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Altre risorse
Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione
Individuazione di codice mediante il modello di codice (Visual Basic)
Individuazione di codice mediante il modello di codice (Visual C#)