2012-01-08 13 views
8

मैंने सार्वजनिक मेनविंडो() {} के अंदर कुछ कोड डाला है, लेकिन जैसे ही मैंने ऐसा किया है, मैंने कुछ अस्पष्ट XAML पार्सिंग त्रुटियां प्राप्त की हैं (मेरे कंप्यूटर पर नहीं, लेकिन 3 अन्य लोगों पर मैंने इसे आजमाया है - हाँ!)सी # एप्लिकेशन शुरू होने पर कोड को सही तरीके से कैसे चलाएं?

क्या कोड को चलाने के लिए पसंदीदा तरीका है जैसे ही वह एप्लिकेशन शुरू होता है?

सिद्धांत यह है कि मैं इसे घर पर फोन करना चाहता हूं और पूछना चाहता हूं कि यह शुरू करना ठीक है। यदि ऐसा नहीं है, तो मैं ऐप को बंद करना चाहता हूं। इसे एक अस्थिर प्रति-सुरक्षा कहें :)

+1

आप किस तकनीक के बारे में बात कर रहे हैं? विंडोज़ फॉर्म? एएसपीनेट वेब फॉर्म? एएसपीएनटी एमवीसी? WPF? – balexandre

+0

@balexandre, अच्छा सवाल है। मेरा अनुमान/धारणा WPF है, टैग किए गए टैग और निर्दिष्ट XAML त्रुटियों और इसे विभिन्न कंप्यूटरों पर चलाने के कारण। – Lucero

+1

@ लुसेरो, एक्सएएमएल त्रुटियों और 'मेनविंडो' के बारे में बात के कारण, 'wpf' टैग मेरे द्वारा जोड़ा गया था। – svick

उत्तर

19

सामान्य परिस्थितियों में, डब्ल्यूपीएफ Main विधि (एप्लिकेशन का प्रवेश बिंदु) बनाता है। आपके विकल्प

  • Application.Startup ईवेंट के लिए एक हैंडलर बनाएं और अपना कोड वहां रखें। वैकल्पिक रूप से, आप OnStartup() विधि को ओवरराइड कर सकते हैं।
  • यदि आपके लिए बहुत देर हो चुकी है, तो अपना कोड App के पैरामीटर रहित कन्स्ट्रक्टर में रखें (यह शायद मौजूद नहीं है, लेकिन आप इसे बना सकते हैं)।
  • यदि यह बहुत देर हो चुकी है, तो आप अपना खुद का Main() विधि बना सकते हैं। There are several ways how to do that। संभवतः सबसे आसान यह है कि इसे किसी अन्य वर्ग में डालें और विजुअल स्टूडियो को बताएं कि आप इस विधि का उपयोग प्रोजेक्ट के गुणों में करना चाहते हैं।

दूसरी ओर, आपने कहा कि आपको कुछ अस्पष्ट XAML पार्सिंग त्रुटियां मिल रही हैं। शायद आपको पता होना चाहिए कि उनका क्या मतलब है?

0

आपके पास ईवेंट WPF में है।

लेकिन अगर आप रन अनुमति आवेदन लोड होने से पहले की जांच करने के (कारण कुछ संसाधन consuption या कुछ व्यापार रणनीति) एक bootstrapper एक अलग छोटे executable कि पहले mainexe द्वारा और बाद शुरू का उपयोग करना चाहते हैं, तो सब कुछ ठीक एक bootstrapper रन main exe

+0

'विंडो। लोडेड' को 'विंडो' के कन्स्ट्रक्टर के बाद भी बुलाया जाता है, जिसे ओपी ने बहुत देर हो चुकी है। – svick

+0

@svick: "बहुत देर हो चुकी" बिंदु को न देखें। ओपी का कहना है कि जैसे ही * ऐप शुरू होता है, वह चेक * को चलाने के लिए चाहता है। तो, आईएमओ, एक "सामान्य" विकल्प 'विंडो। लोडेड' पकड़ रहा है या 'बूटस्ट्रैपर' का उपयोग कर रहा है, जो कार्यान्वित करने के लिए अधिक जटिल है, लेकिन शायद ओपी वास्तव में क्या चाहता है। – Tigran

संबंधित मुद्दे