Freigeben über


CodeAttribute2.Value-Eigenschaft

Legt die Daten für das Codeattribut fest oder ruft sie ab.

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

Syntax

'Declaration
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)

Eigenschaftswert

Typ: String
Ein Zeichenfolgenwert, der die Daten für das Codeattribut darstellt.

Hinweise

Wenn ein Attribut die Form name(someval, 2) hat, ist der Wert someval, 2.

Hinweis

Die Werte für Codeattributargumente werden nach der Zuweisung in Visual Studio nicht im Speicher beibehalten und sind daher bei einer künftigen Aktualisierung der Codeattributargumente möglicherweise gültig oder ungültig.Dies bedeutet, dass bei einem nachfolgenden Zugriff auf die Argumente unter Umständen E_FAIL oder ein vollkommen anderer Wert zurückgegeben wird. (Im Zusammenhang mit den untergeordneten Elementen des Elements tritt dieses Problem jedoch nicht auf.)

Aufgrund des nicht deterministischen Verhaltens sollten Sie den Wert des Arguments abrufen, bevor Sie ihn ändern.Wenn Sie beispielsweise ein Codeattributargument wie myAttrArg.Value = """a first value""" im Code festlegen, sollten Sie vor der entsprechenden Aktualisierung ausdrücklich auf das Argument verweisen, z. B. über myAttrArg = myAttr.Arguments.Item("first value"), und erst dann den neuen Wert myAttrArg.Value = """a second value""" zuweisen.Dadurch wird sichergestellt, dass das richtige Argument geändert wird.

Außerdem können die Werte von Codemodellelementen wie Klassen, Strukturen, Funktionen, Attributen, Delegaten usw. nach bestimmten Bearbeitungsvorgängen nicht deterministisch sein, d. h., dass nicht mehr davon ausgegangen werden kann, dass ihre Werte immer unverändert bleiben.Weitere Informationen finden Sie im Abschnitt zum Änderungsverhalten von Codemodellelementwerten unter Ermitteln von Code über das Codemodell (Visual Basic).

Beispiele

Im folgenden Beispiel werden in der aktuellen Klasse ein neuer Namespace und ein neues Attribut erstellt und einige der Attributeigenschaften aufgelistet.

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

.NET Framework-Sicherheit

Siehe auch

Referenz

CodeAttribute2 Schnittstelle

EnvDTE80-Namespace

Weitere Ressourcen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Ermitteln von Code über das Codemodell (Visual Basic)

Ermitteln von Code über das Codemodell (Visual C#)