मैं अपने स्वयं के रिबन टैब के साथ एक वर्ड एड-इन विकसित कर रहा हूं। मेरे अधिकांश वास्तविक कोड में कुछ सेवा वर्गों में शामिल है जो इसAddIn_Startup में प्रारंभ किए गए हैं और यह AddAddIn सिंगलटन ऑब्जेक्ट के गुणों को असाइन किया गया है। मेरे पास एक ईवेंट श्रोता भी है जो क्लिपबोर्ड घटनाओं के लिए सुनता है जिसे मैं उसी कोड की संपत्ति के रूप में शेष कोड में बेनकाब करना चाहता हूं।कस्टम रिबन इस AddIn_Startup से पहले लोड किया गया है, लेकिन मैं वहां कुछ चीजों को प्रारंभ करना चाहता हूं - सर्वोत्तम समाधान?
जिस समस्या में मैं चल रहा हूं वह यह है कि मेरे रिबन का लोड इवेंट इस एडिनइन की स्टार्टअप घटना से पहले आग लग जाता है (भले ही सिंगलटन ऑब्जेक्ट को पहले से ही प्रारंभ किया गया हो और ग्लोबल्स को असाइन किया गया हो। यह जोड़ें)। मेरे रिबन के लोड इवेंट हैंडलर में मैं उस श्रोता पर एक हैंडलर स्थापित करना चाहता हूं और उन सेवाओं में से एक का भी उपयोग करना चाहता हूं। मैं नहीं कर सकता, हालांकि, इस बिंदु पर प्रोग्राम निष्पादन में वे शून्य हैं।
इस मुद्दे पर सबसे अच्छा समाधान क्या है? मैं तो बस इन बातों ThisAddIn के स्थिर सदस्यों के सभी कर सकते हैं और उन्हें एक स्थिर निर्माता में प्रारंभ, लेकिन यह गलत लगता है और यह भी एक स्टार्टअप घटना (या एक सिंगलटन वस्तु) होने के पूरे मुद्दे को नष्ट कर देता। तो लोड घटना स्टार्टअप के बाद निकाल दिया -
अजीब तरह, मैं मूल रूप से इस समस्या को जब मेरे रिबन बस में निर्मित ऐड-में टैब पर उसके घटकों को जोड़ने था नहीं था।
(नोट: मैं दृश्य स्टूडियो 2012 में यह सब कर रहा हूँ और रिबन डिजाइनर का उपयोग कर।)
मैं वास्तव में ऊपर या तो अब और स्वीकार किए जाते हैं जवाब का उपयोग नहीं करते। (क्या उचित अतः इसके जवाब है? मैं एक नया जोड़ना चाहिए और स्वीकार करते हैं के लिए कदम?) मुझे क्या Ribbon.Designer.cs में निर्माता को संपादित एक विधि "ManualInitialize" कॉल करने के लिए है। इस कोड में वह सब कुछ शामिल है जो ThisAddIn_Startup पर निर्भर नहीं है। मैं तो उस ThisAddIn_Startup से पुकारा जाता है Ribbon.cs "FinalStartup" में एक और तरीका सब कुछ है कि * है * ThisAddIn_Startup पर निर्भर होता है कि जोड़ें। –
मुझे लगता है कि आपको स्वीकृत उत्तर को हटा देना चाहिए और अपने प्रश्न को अनुत्तरित होने देना चाहिए। शायद किसी को एक बेहतर तरीका मिल जाएगा। – Malick