다음을 통해 공유


Globals 인터페이스

Globals 개체는 VariablePersists 속성을 사용하여 전체 세션뿐만 아니라 Visual Studio 환경의 각 세션이 유지되는 동안 데이터를 저장하는 캐시입니다.

네임스페이스:  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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 Parent Globals 개체의 직계 부모를 가져옵니다.
Public 속성 VariableExists 지정된 변수가 있는지 여부를 반환합니다.
Public 속성 VariableNames 현재 모든 전역 변수 이름의 목록을 가져옵니다.
Public 속성 VariablePersists VariablePersists 속성은 여러 형식의 Globals 개체에 적용됩니다.DTE.Globals 개체의 경우 이 속성은 개발 환경의 모든 세션에서 사용할 수 있도록 변수를 유지할지 여부를 가져오거나 설정하고Solution.Globals 개체의 경우에는 솔루션을 로드/언로드하는 동안 또는 개발 환경의 모든 세션에서 사용할 수 있도록 변수를 유지할지 여부를 가져오거나 설정합니다.또한 Project.Globals 개체의 경우 개발 환경에서 변수를 프로젝트 파일에 유지할지 여부를 가져오거나 설정합니다.
Public 속성 VariableValue 지정한 이름의 변수를 반환하거나 설정합니다.

위쪽

설명

예를 들어 Globals 개체를 사용하면 프로그램을 실행할 때마다 이전 값이 유지되는 전역 변수를 설정할 수 있습니다.또한 명령을 실행할 때마다 사용자가 정보를 입력해야 하는 경우 이 개체를 사용하여 명령의 기본값을 구현할 수 있습니다.뿐만 아니라 지정한 횟수만큼 이 개체를 호출한 후 이 개체의 동작을 변경하는 데 이 개체를 사용할 수도 있습니다.

데이터는 Globals 개체에 이름/variant 값 쌍으로 저장됩니다.선택적으로 VariablePersists 속성을 사용하여 이러한 이름/값 쌍을 디스크에 저장하면 Visual Studio의 여러 세션 간에 상태를 문자열로 유지할 수 있습니다.

[!참고]

개체 또는 SafeArrays를 포함하는 변수는 저장할 수 없습니다.문자열로 저장할 수 있는 값은 네이티브 형식으로 저장됩니다.

추가 기능이나 매크로에서도 Globals 개체를 사용하여 Visual Studio 세션 간에 각 사용자에게 고유한 사용자 정의 데이터를 저장할 수 있습니다.또한 Globals 개체를 사용하여 솔루션 파일(.sln)에 데이터를 저장하거나 이 파일에서 데이터를 검색할 수도 있습니다.

Globals 개체를 사용하여 저장한 값을 읽거나 저장하려면 VariableValue 속성을 사용합니다.

[!참고]

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 네임스페이스

기타 리소스

프로젝트 및 솔루션에 정보 유지