أكثر

لا يتم تشغيل IExtension.Startup () عند بدء ArcMap؟

لا يتم تشغيل IExtension.Startup () عند بدء ArcMap؟


لدي ملحق ArcGIS 10 لن يتم تشغيل .Startup () عند تحميل ArcMap. يمكنني الحصول عليه عندما أذهب إلى Customize-> Extensions وإلغاء تحديد / إعادة التحقق من اسم الامتداد.

هل هناك إعداد أحتاج إلى تكوينه للحصول على هذا الحريق عند إطلاق Arc؟


إذا كنت تستخدم امتداد JIT ، قابل للتكوين ، فاحذر من أن ملحقات JIT تبدأ فقط عندما يتم استدعاؤها.

يجب أن تبدأ الإضافات العادية مع ArcMap (سواء كانت قابلة للتكوين أم لا - أحتاج إلى تأكيد ذلك ، هل يمكن لأي شخص المساعدة؟)

ملحقات في الوقت المناسب

يتم تحميل الامتدادات بشكل عام عند بدء تشغيل تطبيق ArcGIS لأول مرة. على سبيل المثال ، في ArcMap ، يقوم مدير الامتداد بإنشاء مثيل لكل ملحق يمكنه العثور عليه في فئة مكون ملحقات ESRI Mx ويستدعي طريقة IExtension :: Startup الخاصة به.

قد ترغب في تطوير امتدادك ليكون امتدادًا في الوقت المناسب (JIT). المفهوم الكامن وراء امتدادات JIT هو تجنب إنشاء الكائنات حتى الضرورة ؛ لذلك ، لا يبدأ ArcMap تشغيل امتداد JIT حتى يكون مطلوبًا بالفعل.

http://edndoc.esri.com/arcobjects/9.0/ExtendingArcObjects/Ch03/AboutExtensions.htm

الفرق الأكبر بينهما هو كيفية تسجيل الامتداد. يقومون بتنفيذ نفس الواجهات بشكل أساسي. لتلخيص ذلك ، تحقق من الفئة التي تم تسجيل الملحق بها. راجع طريقة ArcGISCategoryRegistration في الملحق الخاص بك:

// امتداد عام ، يبدأ عند بدء تشغيل ArcGISCategoryRegistration (نوع تسجيل نوع) الفراغ الثابت الخاص {string regKey = string.Format ("HKEY_CLASSES_ROOT  CLSID  {{{0}}}" ، registerType.GUID) ؛ MxExtension.Register (regKey) ؛ } // JIT extension ، سيبدأ فقط عند استدعائه لأول مرة ArcGISCategoryRegistration (نوع تسجيل نوع) {string regKey = string.Format ("HKEY_CLASSES_ROOT  CLSID  {{{0}}}" ، registerType.GUID) ؛ MxExtensionJIT.Register (regKey) ، }

إذا كان الملحق الخاص بك في وظيفة إضافية ، فحاول تعيين سمة التحميل التلقائي على "صحيح".

 

شاهد الفيديو: Startup Funding Explained: Everything You Need to Know