יותר

IExtension.Startup () לא מופעל כאשר ArcMap מתחיל?


יש לי תוסף ArcGIS 10 שלא יופעל .Startup () כאשר ArcMap נטען. אני יכול לגרום לזה להכות כשאני עובר להתאמה אישית-> הרחבות ובטל את הסימון / בדוק מחדש את שם התוסף.

האם יש הגדרה שאני צריך להגדיר כדי לקבל את האש הזו כאשר Arc מופעלת?


אם אתה משתמש בסיומת JIT הניתנת להגדרה, שים לב כי סיומות JIT מופעלות רק כאשר הם נקראים.

הרחבות רגילות צריכות להפעיל יחד עם ArcMap (בין אם הן ניתנות להגדרה או לא - אני צריך לאשר זאת, מישהו יכול לעזור?)

תוספות בדיוק בזמן

הרחבות נטענות בדרך כלל כאשר אפליקציית ArcGIS מופעלת לראשונה. לדוגמא, ב- ArcMap מנהל ההרחבות מיישר כל סיומת שהוא יכול למצוא בקטגוריית רכיבי ESRI Mx Extensions ומכנה את שיטת IExtension :: Startup שלה.

ייתכן שתרצה לפתח את הסיומת שלך כדי להיות סיומת בדיוק בזמן (JIT). הרעיון העומד מאחורי הרחבות JIT הוא הימנעות מיצירת אובייקטים עד הצורך; לכן ArcMap לא מפעילה סיומת JIT עד שהיא נדרשת בפועל.

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

ההבדל הגדול ביותר ביניהם הוא כיצד אתה רושם את התוסף. הם בעצם מיישמים את אותם ממשקים. לסיכום, בדקו את הקטגוריה אליה נרשמה התוסף. ראו שיטת ArcGISCategoryRegistration בהרחבה:

// סיומת נפוצה, מתחילה כאשר מפת קשת מתחילה ריק סטטי פרטי ArcGISCategoryRegistration (סוג registerType) {string regKey = string.Format ("HKEY_CLASSES_ROOT  CLSID  {{0}}}", registerType.GUID); MxExtension.Register (regKey); } // סיומת JIT, תתחיל רק כשאתה קורא לה לראשונה ריק סטטי ריק ArcGISCategoryRegistration (סוג registerType) {string regKey = string.Format ("HKEY_CLASSES_ROOT  CLSID  {{0}}}", registerType.GUID) ; MxExtensionJIT.Register (regKey); }

אם התוסף שלך נמצא בתוספת, נסה להגדיר את מאפיין הטעינה האוטומטית כ- true.

 


צפו בסרטון: Activating extensions in ArcMap (אוֹקְטוֹבֶּר 2021).