CodeElement2.ElementID – vlastnost
Získá hodnotu, která jednoznačně identifikuje prvek.Není implementováno v jazyce Visual C#.
Obor názvů: EnvDTE80
Sestavení: EnvDTE80 (v EnvDTE80.dll)
Syntaxe
'Deklarace
ReadOnly Property ElementID As String
string ElementID { get; }
property String^ ElementID {
String^ get ();
}
abstract ElementID : string with get
function get ElementID () : String
Hodnota vlastnosti
Typ: String
Řetězec reprezentující jedinečnou hodnotu pro prvek.
Poznámky
ElementID Vlastnost je hodnota, která se vypočítá na základě názvu prvku a dalších informací, které jednoznačně identifikuje prvek.Mezi jazyky se liší přesný výpočet ID.
Toto ID je používán klienty modelu kódu pro sledování prvky bez zachování odkazů.Je součástí modelu kódu události prvku, který mění kód klienta informovat.Nové ID jsou k dispozici při jejich vytváření.
Hodnota ElementID vlastnost nelze považovat za trvalé.Je pravděpodobně změní pokaždé, když model kódu je vytvořena pro projekt a může také změnit v aktuální relaci.ElementChanged Pokaždé, když dojde k události ElementID změny.
[!POZNÁMKA]
Nelze volat RenameSymbol nebo ElementID latebound. (Například: DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Musíte explicitně přetypovat objekt CodeElement2 před provedením volání rozhraní.
Prvky v kódu EnvDTE80 (dále jen kód * 2 objekty) jsou odvozeny od EnvDTE. (Například CodeClass2 je odvozen od CodeClass, a CodeElement2 je odvozen od CodeElement.) Interně v Visual Studio, jsou všechny prvky kódu (v obou sestavení) zase přetypovat na CodeElement2.Logicky, je jakoby CodeClass2, například, nakonec je odvozen z CodeElement2.
Vzhledem k tomu, že dva prvky jsou ve skutečnosti ve dvou samostatných dědičnost hierarchie, ale latebinder nemůže najít CodeElement2 metody v kódu * 2 objekty.EnvDTEfunguje v podstatě stejným způsobem, ale používání maker před procesoru umožňuje rozhraní, které mají být definovány tak, aby zděděné metody jsou výslovně definována pro všechna související rozhraní, pro které existují převody.EnvDTE80rozhraní jsou definována pomocí podobné schéma dědičnosti, pouze bez použití příkazů před procesoru.Toto je elegantnější řešení, protože eliminuje nadbytečné vlastnosti, ale výsledkem je, že vlastnosti nelze volat latebound.Chcete-li tento problém vyřešit, explicitně přetypovat na objekt CodeElement2 před provedením volání rozhraní.
Hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále může být nedeterministické po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné.Další informace naleznete v části Změna hodnoty prvků modelu kód Zjišťování kódu pomocí modelu kódu (Visual Basic).
Zabezpečení rozhraní .NET Framework
- Plná důvěra přímému volajícímu. Částečně zabezpečený kód nemůže tento člen použít. Další informace naleznete v tématu Používání knihoven z částečně důvěryhodného kódu.
Viz také
Referenční dokumentace
Další zdroje
Postupy: Kompilace a spuštění příkladů kódu objektu automatizace