Proprietà CodeAttribute2.Value

Imposta o ottiene i dati per l'attributo di codice.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
Property Value As String
    Get
    Set
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)

Valore proprietà

Tipo: System.String
Valore stringa che rappresenta i dati per l'attributo di codice.

Implementa

CodeAttribute.Value

Note

Se un attributo ha il formato name(someval, 2), il valore corrisponde a someval, 2.

Nota

Dopo l'assegnazione, i valori dell'argomento dell'attributo di codice non vengono mantenuti in memoria da parte di Visual Studio e pertanto potrebbero non essere validi in un successivo aggiornamento di tale argomento. Ciò significa che il successivo accesso all'argomento può restituire E_FAIL o un valore del tutto diverso. Tutto ciò che riguarda gli elementi figlio dell'elemento non presenta questo problema.

A causa di questo comportamento non deterministico, è necessario recuperare il valore dell'argomento prima di apportarvi delle modifiche. Ad esempio, se nel codice si imposta un argomento dell'attributo di codice, come myAttrArg.Value = """a first value""", è necessario farvi riferimento in modo esplicito prima di procedere con l'aggiornamento, ad esempio myAttrArg = myAttr.Arguments.Item("first value"), e assegnare quindi il nuovo valore, myAttrArg.Value = """a second value""". Questa operazione assicura che venga modificato l'argomento corretto.

Inoltre, i valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori. Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).

Esempi

Nell'esempio riportato di seguito vengono creati uno spazio dei nomi e un attributo nuovi nella classe corrente e vengono elencate alcune proprietà dell'attributo.

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

Sicurezza di .NET Framework

Vedere anche

Riferimenti

CodeAttribute2 Interfaccia

Overload Value

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)