Sdílet prostřednictvím


CodeAttribute2.AddArgument – metoda

Přidá atribut argument.

Obor názvů:  EnvDTE80
Sestavení:  EnvDTE80 (v EnvDTE80.dll)

Syntaxe

'Deklarace
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

Parametry

  • Value
    Typ: String

    Povinné.Výchozí hodnota je 0. prvek, po které chcete přidat nový prvek.Pokud je hodnota CodeElement, potom vkládá nový prvek argument, CodeElement. Pokud je hodnota Long typ dat, a pak určuje, po které chcete přidat nový prvek.Vzhledem k tomu, že kolekce jsou jedničky, předáním nula označuje, že nový prvek mají být umístěny na začátek kolekce.Hodnota-1 znamená na konci uveďte argument.

  • Name
    Typ: Object

    Povinné.Hodnota argumentu.

  • Position
    Typ: Object

    Volitelné.Pokud je argument pojmenovaného parametru, tento parametr obsahuje název argumentu.

Vrácená hodnota

Typ: EnvDTE80.CodeAttributeArgument
Objekt CodeAttributeArgument.

Poznámky

[!POZNÁMKA]

Hodnoty argumentu atributu kód, po přiřazení, nejsou zachovány v paměti tak, že Visual Studioa tedy může nebo nemusí být platný, dojde-li k budoucí aktualizaci argument atributu kód.To znamená další argument access může vrátit E_FAIL nebo zcela jinou hodnotu. (Vše, co ovlivňuje děti prvku však nemá problém.)

Z důvodu tohoto chování není deterministický by načíst tento argument hodnota před změnou jeho.Pokud nastavíte argument atributu typu kódu ve vašem kódu, jako například myAttrArg.Value = """a first value""", pak byste měli explicitně odkazovat před aktualizací, jako jsou například myAttrArg = myAttr.Arguments.Item("first value")a pak přiřadit novou hodnotu myAttrArg.Value = """a second value""".To zajišťuje, že správný argument se změní.

Hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále může být nedeterministické po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné.Další informace naleznete v části Změna hodnoty prvků modelu kód Zjišťování kódu pomocí modelu kódu (Visual Basic).

Příklady

Následující příklad vytvoří nový obor názvů a atribut v aktuální třídy a jsou uvedeny některé vlastnosti atributu.

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;
}

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

CodeAttribute2 Rozhraní

EnvDTE80 – obor názvů

Další zdroje

Postupy: Kompilace a spuštění příkladů kódu objektu automatizace

Zjišťování kódu pomocí modelu kódu (Visual Basic)

Zjišťování kódu pomocí modelu kódu (Visual C#)