المعلومات المستمرة في مشاريع و حلول

عندما تقوم بإغلاق مشروع، بيانات مستخدم مثل يتم تجاهل قيم المتغيرات، حتى إذا قمت بحفظ الحل أو المشروع. Visual Studioطراز auإلىmation، على الرغم من ذلك، تقدم طريقة إلى sإلىre، أو أن تستمر، مثل بيانات مستخدم بين جلسات عمل لبيئة التطوير المتكاملة (IDE). يتم إنجاز ذلك باستخدام Globalsكائن من خلال Globalsو Globalsالخصائص. Globals persists solution variables and Globals persists project variables. إرجاع كل خاصية Globalsالكائنات الأعضاء التي تسمح لك بتخزين، واستردادها، وتعداد، وتستمر بشكل اختياري في بيانات. عند القيام بذلك، في المرة التالية التي تفتح الحل أو مشروع، تتم استعادة قيم.

Th هو هو مفيداً، على سبيل المثال، للسماح بأمر لعرض القيمة افتراضية persهوtent، أو للسماح بتغيير سلوكها بعد استدعاء عدد معين من المرات. إضافة-يمكن أيضا استخدام وظائف هذه الميزة للاحتفاظ ببيانات واسترداد بيانات من ملفات الحل (.sln).

عمومي كائن سلوك تفاصيل

إذا Globalsكائن هو المقترن ب IDE، ثم persهوts القيمة في واحد مواقع? الثاني. ل Windows NT 4.0، نظام التشغيل Windows 2000 Professional، و نظام التشغيل Windows Server 2003، يتم تخزين قيم في C:\winnt\Profiles\ <اسم المستخدم> \بيانات تطبيق\Microsoft\‏‫Visual Studio\extglobal.dat. ل نظم التشغيل Windows 95 وWindows 98 وWindows 98 Second Edition وWindows Millennium Edition، إذا كان آلة هو الإعداد لتسجيل دخول مستخدم، يتم تخزين قيم في C:\Windows\Profiles\ <اسم المستخدم> \تطبيق بيانات\Microsoft\‏‫Visual Studio\extglobal.dat. Otherwهوe، هناك هو لا يوجد عنصر <اسم المستخدم>. كل مرة تقوم IDE هو مغلق أو حدوث عملية "حفظ الكل"، persهوts IDE قيم العمومية.

إذا Globalsكائن هو المقترن Solution2الكائن، ثم persهوts قيمة في ملف.sln. تكون هذه قيم persهوted عند ملف الحل هو المحفوظة.

إذا Globalsكائن هو المقترن Projectالكائن، ثم persهوts قيمة في ملف مشروع (.dsp.vbp وهكذا). تكون قيم persهوted مشروع في أي وقت هو المحفوظة.

يجب أن تكون قيم تخزين كسلسلة يمكن أن persهوted — التي هو، لا SAFEARRAY الكائن أو التخزين المركبة. إذا كان لا يمكن تحويل المتغير إلى سلسلة، القيمة السلسلة Englهوh هو persهوted الذي يشرح سبب المتغير غير persهوted.

عندما تكون المتغيرات persهوted، سجل جديد للمتغيرات وقيمها هو المحفوظة.

قيم عمومي مستمر

يوضح المثال الماكرو التالي كيفية استخدام Globalsالكائن وأعضائها للمحافظة على قيمة المتغير بعد حل هو مغلق وكيفية الوصول إلى القيمة عند الحل هو إعادة فتحها. تحسب و يخرج عددا من المرات الوظيفة الإضافية تم تحميله.

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.");
}

راجع أيضًا:

المهام

كيفية القيام بما يلي: إضافة ومعالجة الأوامر

كيفية القيام بما يلي: قم بإنشاء إضافة-في

الإرشادات التفصيلية: إنشاء معالج

المبادئ

مخطط نموذج كائن تلقائي

موارد أخرى

إنشاء و التحكم في بيئة Windows

إنشاء إضافة-زر 'Ins' ومعالجات

التنفيذ التلقائي والمرجع الامتداد