Globals.VariablePersists - свойство
Обновлен: Ноябрь 2007
Свойство VariablePersists применяется к объектам Globals нескольких типов. Для объекта DTE.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступно ли ее значение между сеансами среды. Для объекта Solution.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступна ли ее значение между сеансами среды и загрузкой и выгрузкой решения. Для объекта Project.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой в файле проекта.
Пространство имен: EnvDTE
Сборка: EnvDTE (в EnvDTE.dll)
Синтаксис
'Декларация
Property VariablePersists ( _
VariableName As String _
) As Boolean
'Применение
Dim instance As Globals
Dim VariableName As String
Dim value As Boolean
value = instance.VariablePersists(VariableName)
instance.VariablePersists(VariableName) = value
bool VariablePersists[
string VariableName
] { get; set; }
property bool VariablePersists[String^ VariableName] {
bool get (String^ VariableName);
void set (String^ VariableName, bool value);
}
JScript не поддерживает индексированные свойства.
Параметры
- VariableName
Тип: System.String
Обязательный. Представляет имя переменной, которую требуется сохранить.
Значение свойства
Тип: System.Boolean
Логическое значение, показывающее существует ли переменная или нет. Свойство VariablePersists возвращает значение true, если переменная существует, и false, если не существует.
Заметки
Хотя глобальные переменные сохраняются в сеансах Visual Studio, свойство VariablePersists позволяет сохранять их и между сеансами.
Примечание. |
---|
Для сохранения переменных вместе с конкретным решением используется объект DTE.Solution.Globals. |
Если переменная не существует, то свойство VariablePersists возвращает значение false.
В случае объекта Solution (Solution.Globals) данные сохраняются при каждом сохранении решения. Изменение объекта Globals приведет к тому, что файл решения будет помечен как отредактированный ("измененный"). В случае объекта DTE (DTE.Globals) данные сохраняются либо при завершении работы среды Visual Studio, либо при сохранении решения. В обоих случаях данные записываются либо в файл решения (SLN), либо в файл структурированного хранилища в папке профилей пользователей.
Когда завершается работа среды или выполняется операция Save All, сохраняются все глобальные значения. Если свойство VariablePersists связано с объектом DTE, значение сохраняется в папке параметров пользователей среды Visual Studio.
Если глобальная переменная связана с объектом Solution, значение сохраняется в файле решения (SLN). Значения сохраняются при каждой записи SLN-файла.
При сохранении переменных ранее сохраненные значения заменяются. Для удаления переменной из сохраненного файла следует присвоить свойству VariablePersists значение false. Значение переменной будет удалено в ходе следующей операции сохранения (Save).
Примечание. |
---|
Имена VariableValue не могут содержать пробелы. Если в имени содержится этот знак, произойдет ошибка "Значение не попадает в ожидаемый диапазон". |
Примеры
Sub OnAddinLoaded(ByVal dte As DTE)
' Count the number of times an add-in is loaded
' and store the value in the solution.
Dim globals As Globals
globals = dte.Solution.Globals
If globals.VariableExists("AddinLoadCounter") Then
' The counter has already been set, so increment it.
Dim int32 As System.Int32
int32 = System.Int32.Parse(CStr(globals("AddinLoadCounter")))
int32 += 1
globals("AddinLoadCounter") = int32.ToString()
Else
' Counter has never been set, so create and initialize it.
globals("AddinLoadCounter") = 1.ToString()
globals.VariablePersists("AddinLoadCounter") = True
End If
MsgBox("This add-in has been loaded: " & _
globals.VariableValue("AddinLoadCounter") & " times.")
End Sub
void OnAddinLoaded(_DTE applicationObject)
{
// Count the number of times an add-in is loaded
// and store the value in the solution.
Globals globals;
globals = applicationObject.Solution.Globals;
if(globals.get_VariableExists("AddinLoadCounter"))
{
// The counter has already been set, so increment it.
System.Int32 int32;
int32 = System.Int32.Parse((string)
globals["AddinLoadCounter"]);
int32++;
globals["AddinLoadCounter"] = int32.ToString();
}
else
{
// Counter has never been set, so create and initialize it.
globals["AddinLoadCounter"] = 1.ToString();
globals.set_VariablePersists("AddinLoadCounter", true);
}
System.Windows.Forms.MessageBox.Show("This add-in has been loaded:
" + globals.VariableValue["AddinLoadCounter"] + " times.");
}
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Сохранение сведений в проектах и решениях
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации