Udostępnij za pośrednictwem


Właściwość CodeAttribute2.InfoLocation —

Pobiera modelu kodu.

Przestrzeń nazw:  EnvDTE80
Zestaw:  EnvDTE80 (w EnvDTE80.dll)

Składnia

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

Wartość właściwości

Typ: vsCMInfoLocation
A vsCMInfoLocation stałą wartość.

Uwagi

Jeśli InfoLocation właściwość zwraca vsCMInfoLocationProject, a następnie można ustawić właściwości, uzyskania StartPointi uzyskać EndPoint, i tak dalej.Kiedy przejść od jednego kodu modelu obiektu (A) do (B) — takie od funkcji z klasy do swojej klasy bazowej lub jego typ — B może być typu vsCMInfoLocationExternal jeśli jego definicja znajduje się w innym projekcie.Rozmieszczenie jest zależna od implementacji modelu kodu, czy obiekt B realizowany jest w tym samym języku co obiekt A i tak dalej.

Jeśli InfoLocation właściwość zwraca vsCMInfoLocationExternal, a następnie informacje są dostępne tylko z metadanych w bibliotece DLL lub mrożonych źródeł.Może być w stanie uzyskać StartPoint i EditPoint, ale nie można edytować dokumentu.Innymi słowy nie można ustawić właściwości lub zmodyfikować tekst za element kodu.

Jeśli InfoLocation zwraca vsCMInfoLocationNone, a następnie wszystko, co jest dostępny jest kod model obiektu o nazwie.Ponadto na podstawie kontekstu kodu źródłowego, w niektórych przypadkach można stwierdzić, czy nazwa powinna być klasy lub interfejsu.W tej sytuacji jednak ponieważ modelu kodu nie może rozpoznać nazwy do żadnych rzeczywistych informacji obiekt jest inaczej bezużyteczne.

[!UWAGA]

Wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej mogą być deterministyczny po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie mogą być powoływane do zawsze pozostają takie same.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).

Przykłady

Poniższy przykład tworzy nowy obszar nazw i atrybut w bieżącej klasy i zawiera listę niektórych właściwości atrybutu.

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;
}

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

CodeAttribute2 Interfejs

Przestrzeń nazw EnvDTE80

Inne zasoby

Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady

Odnajdowanie kodu za pomocą modelu kodu (Visual Basic)

Odnajdowanie kodu za pomocą modelu kodu (Visual C#)