Właściwość CodeAttribute2.InfoLocation —
Pobiera modelu kodu.
Przestrzeń nazw: EnvDTE80
Zestaw: EnvDTE80 (w EnvDTE80.dll)
Składnia
'Deklaracja
ReadOnly Property InfoLocation As vsCMInfoLocation
vsCMInfoLocation InfoLocation { get; }
property vsCMInfoLocation InfoLocation {
vsCMInfoLocation get ();
}
abstract InfoLocation : vsCMInfoLocation with get
function get InfoLocation () : vsCMInfoLocation
Wartość właściwości
Typ: vsCMInfoLocation
A vsCMInfoLocation stałą wartość.
Uwagi
Jeśli InfoLocation właściwość zwraca vsCMInfoLocationProject, a następnie można ustawić właściwości, uzyskania StartPointi uzyskać EndPoint, i tak dalej.Kiedy przejść od jednego kodu modelu obiektu (A) do (B) — takie od funkcji z klasy do swojej klasy bazowej lub jego typ — B może być typu vsCMInfoLocationExternal jeśli jego definicja znajduje się w innym projekcie.Rozmieszczenie jest zależna od implementacji modelu kodu, czy obiekt B realizowany jest w tym samym języku co obiekt A i tak dalej.
Jeśli InfoLocation właściwość zwraca vsCMInfoLocationExternal, a następnie informacje są dostępne tylko z metadanych w bibliotece DLL lub mrożonych źródeł.Może być w stanie uzyskać StartPoint i EditPoint, ale nie można edytować dokumentu.Innymi słowy nie można ustawić właściwości lub zmodyfikować tekst za element kodu.
Jeśli InfoLocation zwraca vsCMInfoLocationNone, a następnie wszystko, co jest dostępny jest kod model obiektu o nazwie.Ponadto na podstawie kontekstu kodu źródłowego, w niektórych przypadkach można stwierdzić, czy nazwa powinna być klasy lub interfejsu.W tej sytuacji jednak ponieważ modelu kodu nie może rozpoznać nazwy do żadnych rzeczywistych informacji obiekt jest inaczej bezużyteczne.
[!UWAGA]
Wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej mogą być deterministyczny po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie mogą być powoływane do zawsze pozostają takie same.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).
Przykłady
Poniższy przykład tworzy nowy obszar nazw i atrybut w bieżącej klasy i zawiera listę niektórych właściwości atrybutu.
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;
}
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 Używanie bibliotek pochodzących z częściowo zaufanego kodu.
Zobacz też
Informacje
Inne zasoby
Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady