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
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Przy użyciu bibliotek z częściowo zaufanego kodu..
Zobacz też
Informacje
Inne zasoby
Jak: skompilować i uruchomić przykłady kodu modelu obiektu automatyzacji