CodeAttribute2.Value - свойство
Возвращает или задает данные для атрибута кода.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
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)
Значение свойства
Тип: String
Строковое значение, представляющее данные для атрибута кода.
Заметки
Если атрибут находится в форме name(someval, 2), то значение равно someval, 2.
Примечание
После присвоения значений аргументам атрибута кода, Visual Studio не сохраняет их в памяти. Поэтому при следующем обновлении аргумента атрибута кода они могут оказаться недействительными.Это значит, что при обращении к аргументу в будущем может быть возвращено E_FAIL или совершенно иное значение. (Однако эта проблема не распространяется на все, что связано с дочерними объектами элемента.)
В виду такого недетерминированного поведения, значение аргумента следует извлекать до того, как оно будет изменено.Например, при задании в коде аргумента атрибута кода, такого как myAttrArg.Value = """a first value""", перед его обновлением следует явно сослаться на него, например myAttrArg = myAttr.Arguments.Item("first value"), и только после этого присвоить новое значение: myAttrArg.Value = """a second value""".В этом случае гарантируется изменение необходимого аргумента.
Кроме того, значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и т.п., после внесения некоторых изменений могут стать недетерминированными, иными словами, нельзя рассчитывать, что их значения не будут изменяться.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" в разделе Практическое руководство. Поиск кода при помощи модели кода (Visual Basic).
Примеры
В следующем примере создается новое пространство имен и атрибут в текущем классе и перечисляются некоторые свойства атрибута.
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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)
Практическое руководство. Поиск кода при помощи модели кода (Visual C#)