Propriedade CodeAttribute2.InfoLocation
Obtém o modelo de código.
Namespace: EnvDTE80
Assembly: EnvDTE80 (em EnvDTE80.dll)
Sintaxe
'Declaração
ReadOnly Property InfoLocation As vsCMInfoLocation
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation
function get InfoLocation () : vsCMInfoLocation
Valor de propriedade
Tipo: EnvDTE.vsCMInfoLocation
A vsCMInfoLocation valor constante.
Comentários
Se a InfoLocation propriedade retornará vsCMInfoLocationProject, e em seguida, você pode definir propriedades, obter um StartPointe obter um EndPoint, e assim por diante.Quando você entrar no objeto de modelo de código de um (A) para outro (B) — por exemplo, de uma função para seu tipo ou de uma classe para sua classe base — B pode ser do tipo vsCMInfoLocationExternal se a sua definição é em outro projeto.A disposição depende a implementação do modelo de código, o objeto se o projeto do b é implementado no mesmo idioma do objeto do e assim por diante.
Se a InfoLocation propriedade retornará vsCMInfoLocationExternal, e em seguida, as informações estão disponíveis somente a partir de metadados em uma DLL ou fontes congeladas.Talvez você possa obter um StartPoint e EditPoint, mas você não pode editar o documento.Em outras palavras, você não pode definir propriedades ou modificar o texto atrás do elemento de código.
Se InfoLocation retorna vsCMInfoLocationNone, e em seguida, tudo o que está disponível é um objeto de modelo de código que tem um nome.Além disso, com base no contexto de código fonte, em alguns casos você pode dizer se o nome deve ser uma classe ou uma interface.Nessa situação, no entanto, porque o modelo de código não foi possível resolver o nome a qualquer informação real, o objeto é contrário inútil.
Observação |
---|
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). |
Exemplos
O exemplo a seguir cria um novo espaço para nome e o atributo na classe atual e lista algumas das propriedades do atributo.
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;
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.
Consulte também
Referência
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)