Udostępnij za pośrednictwem


Właściwość CodeElement2.ElementID —

Pobiera wartość, która jednoznacznie identyfikuje element.Nie zaimplementowane w środowisku Visual C#.

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

Składnia

'Deklaracja
ReadOnly Property ElementID As String
string ElementID { get; }
property String^ ElementID {
    String^ get ();
}
abstract ElementID : string
function get ElementID () : String

Wartość właściwości

Typ: System.String
Ciągiem reprezentującym unikatową wartość dla elementu.

Uwagi

ElementID Właściwość jest to wartość, która jest obliczana na podstawie nazwy elementu i inne informacje, które unikatowo identyfikuje element.Dokładne obliczenie identyfikator waha się między językami.

Ten identyfikator jest używany przez klientów modelu kodu, aby śledzić elementy bez zachowania odniesienia.Dołączono go do kodu modelu zdarzeń poinformować klienta kod elementu, który jest zmieniany.Nowe identyfikatory są dostarczane, podczas ich tworzenia.

Wartość ElementID właściwości nie powinno być traktowane stałe.Prawdopodobnie można zmieniać przy każdym modelu kodu jest tworzony dla projektu, a także zmieniać w bieżącej sesji.ElementChanged Przy każdym wystąpieniu zdarzenia ElementID zmiany.

[!UWAGA]

Nie można wywołać funkcji RenameSymbol lub ElementID latebound.(Na przykład, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Musi jawnie rzutować obiekt do CodeElement2 interfejsu przed wywołania.

Kod elementów w EnvDTE80 (zwany dalej kod * 2 obiektów) pochodzi od tych, w EnvDTE.(Na przykład, CodeClass2 pochodzi z CodeClass, i CodeElement2 pochodzi z CodeElement.) Wewnętrznie w Visual Studio, wszystkie elementy kodu (w obu zestawów) z kolei zostały oddane do CodeElement2.Tak, logicznie rzecz biorąc, jest tak, jakby CodeClass2, na przykład, ostatecznie pochodzi od CodeElement2.

Ponieważ dwa elementy są w rzeczywistości w dwóch oddzielnych dziedziczenie hierarchie, jednak latebinder nie może wyszukać CodeElement2 metody na kod * 2 obiektów.EnvDTEProgram Works zasadniczo taki sam sposób, ale użycie makra pre-processor umożliwia interfejsów, należy określić takie, że metody dziedziczone są zdefiniowane jawnie na wszystkich interfejsach powiązanych, dla których istnieją konwersji. EnvDTE80 interfejsy są definiowane przy użyciu programu podobne dziedziczenia, tylko bez użycia instrukcji pre-processor.Jest to bardziej eleganckie rozwiązanie, ponieważ eliminuje nadmiarowe właściwości, ale wynik jest, że właściwości nie można wywołać latebound.Aby obejść ten problem, wyraźnie rzutować obiekt do CodeElement2 interfejsu przed wywołania.

Również wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej można bez deterministyczny po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie może polegać na zawsze pozostawać takie same.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odkrywanie kod przy użyciu modelu kodu (Visual Basic).

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

CodeElement2 Interfejs

Przestrzeń nazw EnvDTE80

Inne zasoby

Jak: skompilować i uruchomić przykłady kodu modelu obiektu automatyzacji

Odkrywanie kod przy użyciu modelu kodu (Visual Basic)

Odkrywanie kod przy użyciu modelu kodu (Visual C#)