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


Globals - интерфейс

Объект Globals представляет собой кэш для хранения данных во время каждого сеанса работы среды Visual Studio, а также между сеансами с помощью свойства VariablePersists.

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

Синтаксис

'Декларация
<GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")> _
Public Interface Globals
[GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface Globals
[GuidAttribute(L"E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface class Globals
[<GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")>]
type Globals =  interface end
public interface Globals

Тип Globals предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство DTE Возвращает объект расширения верхнего уровня.
Открытое свойство Parent Получает непосредственный родительский объект для объекта Globals.
Открытое свойство VariableExists Возвращает информацию о том, существует ли указанная переменная.
Открытое свойство VariableNames Возвращает список всех имен текущих глобальных переменных.
Открытое свойство VariablePersists Свойство VariablePersists применяется к объектам Globals нескольких типов.Для объекта DTE.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступно ли ее значение между сеансами среды.Для объекта Solution.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой и доступна ли ее значение между сеансами среды и загрузкой и выгрузкой решения.Для объекта Project.Globals оно возвращает или задает сведения о том, сохраняется ли переменная средой в файле проекта.
Открытое свойство VariableValue Возвращает или задает переменную с указанным именем.

В начало страницы

Заметки

Объект Globals позволяет, например, использовать в программах глобальные переменные, значения которых сохраняются от одной процедуры выполнения к другой.Этот объект позволяет также устанавливать для команды значение по умолчанию, если при каждом ее выполнении пользователь должен вводить определенные данные.Кроме того, его можно использовать для изменения поведения команды после того, как она вызвана определенное число раз.

Данные хранятся в объекте Globals в виде пар "имя/значение variant".Эти пары "имя/значение" можно при необходимости записывать на диск с помощью свойства VariablePersists, чтобы сохранять состояние между сеансами среды Visual Studio (в виде строки).

ПримечаниеПримечание

Переменные, содержащие объекты или массивы SafeArrays, не могут быть сохранены.Если значение допускает сохранение в виде строки, оно сохраняется в своем исходном формате.

Надстройки или макросы также могут использовать объект Globals для сохранения пользовательских данных, которые должны оставаться уникальными для определившего их пользователя на протяжении различных сеансов Visual Studio.С помощью объекта Globals можно также сохранять данные в файле решения (SLN) и извлекать их оттуда.

Свойство VariableValue используется для сохранения или считывания значений, сохраненных с помощью объекта Globals.

ПримечаниеПримечание

Строки имен 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.");
}

См. также

Ссылки

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

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

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