Поделиться через


Globals.VariablePersists - свойство

Свойство VariablePersists применяется к объектам Globals нескольких типов.Для объекта DTE.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступно ли ее значение между сеансами среды.Для объекта Solution.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступна ли ее значение между сеансами среды и загрузкой и выгрузкой решения.Для объекта Project.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой в файле проекта.

Пространство имен:  EnvDTE
Сборка:  EnvDTE (в EnvDTE.dll)

Синтаксис

'Декларация
Property VariablePersists ( _
    VariableName As String _
) As Boolean
bool this[
    string VariableName
] { get; set; }
property bool VariablePersists[String^ VariableName] {
    bool get (String^ VariableName);
    void set (String^ VariableName, bool value);
}
abstract VariablePersists : bool with get, set
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.");
}

Безопасность платформы .NET Framework

См. также

Ссылки

Globals Интерфейс

EnvDTE - пространство имен

Другие ресурсы

Сохранение сведений в проектах и решениях

Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации