CodeAttribute2.Arguments-Eigenschaft
Ruft eine Auflistung von CodeElement-Objekten ab, die die diesem Attribut zugeordneten CodeAttributeArgument-Objekte enthält.
Namespace: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Syntax
'Declaration
ReadOnly Property Arguments As CodeElements
CodeElements Arguments { get; }
property CodeElements^ Arguments {
CodeElements^ get ();
}
abstract Arguments : CodeElements with get
function get Arguments () : CodeElements
Eigenschaftswert
Typ: CodeElements
Eine Auflistung von CodeElement-Objekten.
Hinweise
Dies ist eine neue Eigenschaft für Visual Studio 2005.
Hinweis
Die Werte für Codeattributargumente werden nach der Zuweisung in Visual Studio nicht im Speicher beibehalten und sind daher bei einer künftigen Aktualisierung der Codeattributargumente möglicherweise gültig oder ungültig.Dies bedeutet, dass bei einem nachfolgenden Zugriff auf die Argumente unter Umständen E_FAIL oder ein vollkommen anderer Wert zurückgegeben wird. (Im Zusammenhang mit den untergeordneten Elementen des Elements tritt dieses Problem jedoch nicht auf.)
Aufgrund des nicht deterministischen Verhaltens sollten Sie den Wert des Arguments abrufen, bevor Sie ihn ändern.Wenn Sie beispielsweise ein Codeattributargument wie myAttrArg.Value = """a first value""" im Code festlegen, sollten Sie vor der entsprechenden Aktualisierung ausdrücklich auf das Argument verweisen, z. B. über myAttrArg = myAttr.Arguments.Item("first value"), und erst dann den neuen Wert myAttrArg.Value = """a second value""" zuweisen.Dadurch wird sichergestellt, dass das richtige Argument geändert wird.
Außerdem können die Werte von Codemodellelementen wie Klassen, Strukturen, Funktionen, Attributen, Delegaten usw. nach bestimmten Bearbeitungsvorgängen nicht deterministisch sein, d. h., dass nicht mehr davon ausgegangen werden kann, dass ihre Werte immer unverändert bleiben.Weitere Informationen finden Sie im Abschnitt zum Änderungsverhalten von Codemodellelementwerten unter Ermitteln von Code über das Codemodell (Visual Basic).
Beispiele
// The following example creates a new namespace and attribute in
// the current class and lists some of the attribute's properties.
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 += "Arguments: " + cmAttribute.Arguments +
Environment.NewLine;
msg += "Count: " + cmAttribute.Children.Count +
Environment.NewLine;
msg += "Endpoint Location: " +
cmAttribute.EndPoint.DisplayColumn +
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;
}
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.
Siehe auch
Referenz
Weitere Ressourcen
Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell