Compartilhar via


Propriedade CodeAttribute2.Value

Os conjuntos ou obtêm os dados para o atributo de código.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (em EnvDTE80.dll)

Sintaxe

'Declaração
Property Value As String
string Value { get; set; }
property String^ Value {
    String^ get ();
    void set (String^ value);
}
abstract Value : string with get, set
function get Value () : String 
function set Value (value : String)

Valor de propriedade

Tipo: String
Um valor de cadeia de caracteres que representa os dados para o atributo de código.

Comentários

Se um atributo está no formato name(someval, 2), o valor é someval, 2.

Dica

Codificar valores de argumento de atributo, depois de ser atribuído, não são mantidos na memória por Visual Studioe, portanto, pode ou não ser válida quando uma atualização futura do argumento do atributo de código ocorre.Isto é, um acesso subsequente do argumento pode retornar E_FAIL ou um valor completamente diferente. (Qualquer coisa que afeta os filhos do elemento, porém, não tem este problema.)

Devido a esse comportamento não determinístico, você deve recuperar o valor do argumento antes de alterar isto.Por exemplo, se você definir um argumento de atributo de código no seu código, como myAttrArg.Value = """a first value""", ao referenciar explicitamente antes de atualizar, como myAttrArg = myAttr.Arguments.Item("first value"), atributos e o novo valor, myAttrArg.Value = """a second value""".Isso assegurará que o argumento correto foi alterado.

Além disso, os valores de código de modelagem elementos como classes, estruturas, funções, atributos, representantes, e assim por diante podem ser não determinísticas depois de fazer determinados tipos as edições do, o que significa que seus valores não podem ser confiáveis em para permanecer sempre os mesmos.Para obter mais informações, veja que os valores do elemento do modelo de código da seção podem ser alteradas em Descobrindo código usando o modelo de código (Visual Basic).

Exemplos

O exemplo a seguir cria uma nova namespace e atributo na classe atual e lista algumas das propriedades do atributo.

Sub ValueExample(ByVal dte As DTE2)

    ' Before running this example, open a code document from a project
    ' and place the insertion point inside a class definition.
    Try
        ' Retrieve the CodeClass at the insertion point.
        Dim sel As TextSelection = _
            CType(dte.ActiveDocument.Selection, TextSelection)
        Dim cls As CodeClass = CType(sel.ActivePoint.CodeElement( _
            vsCMElement.vsCMElementClass), CodeClass)

        ' Enumerate the CodeClass's attributes.
        Dim attrs As String = ""
        Dim attr As CodeAttribute
        For Each attr In cls.Attributes
            attrs &= attr.Name & "(" & attr.Value & ")" & vbCrLf
        Next

        MsgBox(cls.Name & " has the following attributes:" & _
            vbCrLf & vbCrLf & attrs)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub
public void ValueExample(DTE2 dte)
{
    // Before running this example, open a code document from a project
    // and place the insertion point inside a class definition.
    try
    {
        // Retrieve the CodeClass at the insertion point.
        TextSelection sel = 
            (TextSelection)dte.ActiveDocument.Selection;
        CodeClass cls = (CodeClass)sel.ActivePoint.get_CodeElement(
            vsCMElement.vsCMElementClass);

        // Enumerate the CodeClass's attributes.
        string attrs = "";
        foreach (CodeAttribute attr in cls.Attributes)
        {
            attrs += attr.Name + "(" + attr.Value + ")" + 
                Environment.NewLine;
        }

        MessageBox.Show(cls.Name + " has the following attributes:" + 
            Environment.NewLine + Environment.NewLine + attrs);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Segurança do .NET Framework

Consulte também

Referência

CodeAttribute2 Interface

Namespace EnvDTE80

Outros recursos

Como compilar e executar os exemplos de código do modelo de objeto Automation

Descobrindo código usando o modelo de código (Visual Basic)

Descobrindo código usando o modelo de código (Visual C#)