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
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
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
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#)