2015-02-18 3 views
7

मैं निम्नलिखित सेटअप गया:ही AppDomain में एकाधिक WPF अनुप्रयोगों

WPF_Application.exe

और

एक DLL कि एक WinForms खिड़की और एक WPF विंडो में शामिल है।

'WPF_Application.exe' डीएलएल से WinForms विंडो को कॉल करता है और WinForms विंडो DLL में WPF विंडो का एक उदाहरण बनाता है।

ही AppDomain में एक से अधिक System.Windows.Application उदाहरण नहीं बना सकता:

कि निम्नलिखित अपवाद बनाता

विभिन्न चीजों का प्रयास किया, लेकिन इसे ठीक करने का तरीका पता नहीं लगा सका।

उत्तर

11

मैं इसे WPF विंडो Application.Current विंडो को कहा जाता है के अनुप्रयोग asigning द्वारा तय:

if (Application.Current == null) 
    { 
     MyApplication = new Application 
     { 
      ShutdownMode = ShutdownMode.OnExplicitShutdown 
     }; 
    } 
    else 
     MyApplication = Application.Current; 
+1

इसके लिए धन्यवाद। सरल बनाने के लिए: 'MyAplication = Application.Current ?? नया एप्लीकेशन {शट डाउनमोड = शटडाउनमोड.ऑनएक्सप्लिटशूटडाउन} ' –

3

सिस्टम.Windows.Aplication एक सिंगलटन है: इसके कन्स्ट्रक्टर को केवल एक बार लागू किया जाना चाहिए (App.xaml de-xamlization सहित), या अपवाद फेंक दिया गया है।

मुझे डर है कि आप इसके बारे में इतना कुछ नहीं कर सकते हैं, सिवाय इसके कि एप्लिकेशन को लागू करें या नहीं, यह जांचें कि आपका दूसरा एप्लिकेशन शुरू करने से पहले सेट किया गया है, और कुछ हद तक उस उदाहरण को लोड करने के लिए इसका उपयोग करें।

या आप एक और ऐपडोमेन बना सकते हैं, और दूसरा एप्लिकेशन लॉन्च करने के लिए इसका उपयोग कर सकते हैं।

+0

बात मैं अतिरिक्त WinForms app से वापसी मान के लिए इंतज़ार कर रहा हूँ। – JayTee

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