CodeAttribute2.AddArgument, méthode
Ajoute un argument à l'attribut.
Espace de noms : EnvDTE80
Assembly : EnvDTE80 (dans EnvDTE80.dll)
Syntaxe
'Déclaration
Function AddArgument ( _
Value As String, _
Name As Object, _
Position As Object _
) As CodeAttributeArgument
CodeAttributeArgument AddArgument(
string Value,
Object Name,
Object Position
)
CodeAttributeArgument^ AddArgument(
String^ Value,
[InAttribute] Object^ Name,
[InAttribute] Object^ Position
)
abstract AddArgument :
Value:string *
Name:Object *
Position:Object -> CodeAttributeArgument
function AddArgument(
Value : String,
Name : Object,
Position : Object
) : CodeAttributeArgument
Paramètres
- Value
Type : System.String
Obligatoire.La valeur par défaut est 0. Élément après lequel le nouvel élément doit être ajouté.Si la valeur est CodeElement, le nouvel élément est ajouté après l'argument CodeElement.Si la valeur est un type de données Long, il indique l'élément après lequel ajouter le nouveau.Étant donné que les collections sont de base 1, passer la valeur 0 indique que le nouvel élément doit être placé au début de la collection.La valeur -1 signifie de placer l'argument à la fin.
- Name
Type : System.Object
Obligatoire.Valeur de l'argument.
- Position
Type : System.Object
Facultatif.Si l'argument est un paramètre nommé, ce paramètre contient le nom de l'argument.
Valeur de retour
Type : EnvDTE80.CodeAttributeArgument
Objet CodeAttributeArgument.
Notes
[!REMARQUE]
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
L'exemple suivant crée un espace de noms et un attribut dans la classe actuelle, et répertorie certaines des propriétés de l'attribut.
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 += "# of Arguments: " + cmAttribute.Arguments.Count
+ Environment.NewLine;
MessageBox.Show(msg);
cmAttribute.AddArgument("NewAddedValue", null, null);
msg += "# of Arguments: " + cmAttribute.Arguments.Count
+ 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, consultez 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)