Proprietà CodeAttribute2.InfoLocation

ottiene il modello di codice.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
ReadOnly Property InfoLocation As vsCMInfoLocation
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
    vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation
function get InfoLocation () : vsCMInfoLocation

Valore proprietà

Tipo: EnvDTE.vsCMInfoLocation
In vsCMInfoLocation valore costante.

Note

se InfoLocation la proprietà restituisce vsCMInfoLocationProject, quindi è possibile impostare le proprietà, si ottiene un oggetto StartPointe ottenere EndPoint, e così via.Quando accedere da un oggetto del modello di codice () a un altro (B) - come da una funzione al tipo o da una classe alla classe base (B può essere di tipo vsCMInfoLocationExternal se la definizione è in un altro progetto.La disposizione dipende dall'implementazione del modello di codice, se il progetto dell'oggetto b viene implementato nello stesso linguaggio dell'oggetto, e così via.

se InfoLocation la proprietà restituisce vsCMInfoLocationExternal, quindi le informazioni sono disponibili solo dai metadati in una DLL o dalle origini bloccati.È possibile ottenere un oggetto StartPoint e EditPoint, ma non è possibile modificare il documento.Non è quindi possibile impostare le proprietà o modificare il testo dell'elemento di codice.

se InfoLocation restituisce vsCMInfoLocationNone, quindi tutto ciò che è disponibile è un oggetto del modello di codice che ha un nome.Inoltre, in base al contesto del codice sorgente, è possibile stabilire in alcuni casi se il nome deve essere una classe o un'interfaccia.In questa situazione, tuttavia, poiché il modello di codice non è possibile risolvere il nome a alcuna informazione reale, l'oggetto è altrimenti non necessario.

[!NOTA]

I valori degli elementi del modello di codice come classi, strutture, le funzioni, gli attributi, delegati, e così via possono non essere deterministici dopo l'inserimento di determinati tipi di modifiche, pertanto i relativi valori non possono essere basati su per rimanere sempre gli stessi.Per ulteriori informazioni, vedere i valori degli elementi del modello di codice della sezione può cambiare in Individuazione di codice mediante il modello di codice (Visual Basic).

Esempi

Nell'esempio seguente viene creato un nuovo spazio dei nomi e l'attributo nella classe corrente e vengono elencate alcune delle 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

Vedere anche

Riferimenti

CodeAttribute2 Interfaccia

Overload InfoLocation

Spazio dei nomi EnvDTE80

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#)