Compartilhar via


Propriedade CodeElement2.ElementID

Obtém um valor que identifica com exclusividade o elemento.Não implementado no Visual C#.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (em EnvDTE80.dll)

Sintaxe

'Declaração
ReadOnly Property ElementID As String
string ElementID { get; }
property String^ ElementID {
    String^ get ();
}
abstract ElementID : string
function get ElementID () : String

Valor de propriedade

Tipo: System.String
Uma seqüência de caracteres que representa o valor exclusivo para o elemento.

Comentários

O ElementID propriedade é um valor é calculado com base no nome do elemento e outras informações que identifica com exclusividade o elemento.Cálculo da identificação exato varia entre idiomas.

Essa identificação é usada pelos clientes do modelo de código para controlar elementos sem reter referências.Ele é incluído nos eventos do modelo de código para informar o código do cliente do elemento que está mudando.Novas IDs são fornecidos quando eles são criados.

O valor da ElementID propriedade não deve ser considerada permanente.É provável que seja alterado toda vez que o modelo de código é criado para um projeto e também pode ser alteradas na sessão atual.Um ElementChanged evento ocorre sempre que o ElementID as alterações.

ObservaçãoObservação

Você não pode chamar RenameSymbol ou ElementID com ligação tardia.(Por exemplo, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2").) Você deve converter explicitamente o objeto do CodeElement2 interface antes de fazer a chamada.

Elementos de código EnvDTE80 (doravante denominada código * 2 objetos) derivar na EnvDTE.(Por exemplo, CodeClass2 deriva de CodeClass, e CodeElement2 deriva de CodeElement.) Internamente em Visual Studio, por sua vez, todos os elementos de código (em ambos os conjuntos de módulos) são convertidos em CodeElement2.Então, logicamente, isso é como se CodeClass2, por exemplo, em última análise deriva de CodeElement2.

Como os dois elementos são na realidade em duas hierarquias de herança separados, no entanto, o latebinder não é possível consultar CodeElement2 métodos no código * 2 objetos.EnvDTEfunciona praticamente da mesma maneira, mas o uso de macros pre-processor permite que as interfaces sejam definidas de modo que herdadas métodos é definidas explicitamente em todas as interfaces relacionadas para o qual conversões existem. EnvDTE80 interfaces são definidas usando um esquema de herança semelhante, somente sem o uso de instruções de pre-processor.Isso é uma solução mais elegante, já que elimina propriedades redundantes, mas o resultado é que as propriedades não podem ser chamadas com ligação tardia.Para contornar esse problema, explicitamente converter o objeto do CodeElement2 interface antes de fazer a chamada.

Além disso, os valores de elementos de modelo de código, como classes, estruturas, funções, atributos, delegados e assim por diante podem ser não-determinísticos depois de fazer determinados tipos de edições, o que significa que seus valores não confie sempre permanecer o mesmo.Para obter mais informações, consulte a seção valores de elemento de modelo de código podem ser alterada de Descobrindo o código usando o modelo de código (Visual Basic).

Segurança do .NET Framework

Consulte também

Referência

CodeElement2 Interface

Namespace EnvDTE80

Outros recursos

Como: compilar e executar os exemplos de código de modelo de objeto de automação

Descobrindo o código usando o modelo de código (Visual Basic)

Descobrindo o código usando o modelo de código (Visual C#)