CodeAttribute2.Arguments, propriété
Obtient une collection d'objets CodeElement qui contiennent les objets CodeAttributeArgument associés à cet attribut.
Espace de noms : EnvDTE80
Assembly : EnvDTE80 (dans EnvDTE80.dll)
Syntaxe
'Déclaration
ReadOnly Property Arguments As CodeElements
CodeElements Arguments { get; }
property CodeElements^ Arguments {
CodeElements^ get ();
}
abstract Arguments : CodeElements with get
function get Arguments () : CodeElements
Valeur de propriété
Type : CodeElements
Collection d'objets CodeElement.
Notes
Il s'agit d'une nouvelle propriété pour Visual Studio 2005.
Notes
Une fois assignées, les valeurs d'arguments d'attributs de code ne sont pas conservées en mémoire par Visual Studio, et peuvent donc être valides ou non lors d'une future mise à jour de l'argument d'attribut de code.Cela signifie qu'un accès ultérieur à un argument peut retourner E_FAIL ou une valeur totalement différente. (Cependant, tout ce qui affecte les enfants de l'élément ne présente pas ce problème.)
Étant donné ce comportement non déterminable, vous devez récupérer la valeur de l'argument avant de la modifier.Par exemple, si vous définissez un argument d'attribut de code, tel que myAttrArg.Value = """a first value""", vous devez le référencer explicitement avant de le mettre à jour (myAttrArg = myAttr.Arguments.Item("first value")), puis assigner la nouvelle valeur (myAttrArg.Value = """a second value""").Cette opération garantit que l'argument correct est modifié.
En outre, les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterminables après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées.Pour plus d'informations, consultez la section Les valeurs d'élément de modèle de code peuvent être modifiées de la rubrique Découverte de code à l'aide du modèle de code (Visual Basic).
Exemples
// 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;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, voir Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Autres ressources
Comment : compiler et exécuter les exemples de code du modèle objet Automation
Découverte de code à l'aide du modèle de code (Visual Basic)