다음을 통해 공유


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

기타 리소스

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

방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행