2011-06-08 11 views
9

मैंने अभी MVVM Light framework के साथ सिल्वरलाइट सीखना शुरू कर दिया है। हाल ही में मैंने एमवीवीएम लाइट में मैसेंजर सुविधाओं में प्रवेश करना शुरू कर दिया है।एमवीवीएम लाइट संदेश प्रकार: प्रत्येक प्रकार का उपयोग कब करें?

अब तक मैंने लॉरेंट द्वारा पोस्ट किए गए Clean Shutdown example में डाउनलोड किया है और खोला है और मैसेंजर क्लास कैसे काम करता है इसकी बुनियादी समझ है लेकिन मैं अभी भी थोड़ा सा अनिश्चित हूं कि किस संदेश प्रकार का उपयोग करना है।

साइट से, यहाँ संदेश प्रकार हैं:

  • MessageBase: एक साधारण संदेश वर्ग, संदेश के प्रेषक के बारे में वैकल्पिक जानकारी ले जाने।
  • GenericMessage: प्रकार टी के एक सामग्री संपत्ति के साथ एक सरल संदेश
  • NotificationMessage: एक प्राप्तकर्ता (एक स्ट्रिंग के रूप में) सूचना भेजने के लिए प्रयोग किया जाता है। उदाहरण के लिए, अधिसूचनाओं को अधिसूचना वर्ग में निरंतर सहेजें, और फिर अधिसूचनाएं भेजें। प्राप्तकर्ता को भेजें।
  • अधिसूचना संदेश: ऊपर जैसा ही है, लेकिन एक सामान्य सामग्री संपत्ति के साथ। अधिसूचना के साथ प्राप्तकर्ता को पैरामीटर पास करने के लिए उपयोग किया जा सकता है।
  • अधिसूचना संदेश: प्राप्तकर्ता पर एक अधिसूचना भेजता है और प्राप्तकर्ता को प्रेषक को वापस कॉल करने की अनुमति देता है।
  • NotificationMessageAction: एक प्राप्तकर्ता पर सूचना भेजता है और प्राप्तकर्ता इस एक सामान्य पैरामीटर के साथ वापस बुलाने के लिए अनुमति देता है।
  • DialogMessage: अनुरोध करने के लिए प्रयोग किया जाता है कि एक प्राप्तकर्ता (आमतौर पर एक दृश्य) एक डायलॉग दिखाई देगा, और परिणाम फोन करने वाले (एक कॉलबैक का उपयोग) के पास वापस भेजता। प्राप्तकर्ता कैसे संवाद प्रदर्शित करने के लिए चुन सकते हैं, या तो एक मानक MessageBox, एक कस्टम पॉपअप के साथ, आदि ... साथ
  • PropertyChangedMessage: कि एक संपत्ति प्रसारित करने के लिए प्रयोग किया जाता है इस में बदल दिया है। PropertyChanged ईवेंट की तुलना में उसी उद्देश्य को पूरा करता है, लेकिन कम कड़े तरीके से।

मेरा प्रश्न यह है: जब मैं आम तौर पर इन संदेश प्रकारों में से प्रत्येक का उपयोग करें या एक लेख है कि पेशेवरों और प्रत्येक संदेश प्रकार का उपयोग करने का विपक्ष टूट जाती है के लिए मुझे बिंदु होगा किसी को भी मुझे समझा सकते हैं?

उत्तर

6

यदि आप संदेशों को अपने कोडिंग में फिट करने की कोशिश नहीं करते हैं तो आप अपने आप को बहुत सारे सिरदर्द और परेशानियों को बचाएंगे, लेकिन संदेश जो आप चाहते हैं उसे करें। संदेशों को उप-वर्ग से डरने के लिए डरो मत, जो उन्हें वास्तव में आप चाहते हैं। एमवीवीएम-प्रकाश का उपयोग करते समय यह मेरी पहली गलतियों में से एक था।

मेरे संदेश के अधिकांश सामान्य किया जा रहा है कि मैं क्या हस्तांतरण करने के लिए कोशिश कर रहा हूँ के साथ GenericMessage का उपयोग करें ... उदाहरण के लिए

मैं कि

Public ExceptionMessage:GenericMessage<System.Exception> 

तो मैं के साथ 3 कंस्ट्रक्टर्स ओवरराइड एक ExceptionMessage वर्ग है उचित मूल्य

मुझे पता चला कि शूहोर्न चीजों की जगह इस तरह से ऐसा करना आसान है।

मैं एक गहराई से उदाहरण है, जहां मैं अपने कोड के लिए उपयोग किया था मैसेजिंग के बारे में एक और सवाल से here

इसके ...

+0

उपवर्गीकरण भी क्लीनर कोड के रूप में संदेशों उचित नाम किया जा सकता है बनाता है। इसके अलावा यह एक क्लीनर और अधिक केंद्रित की अनुमति देता है - यानी बेहतर चिपकने योग्य - संदेश हैंडलिंग। – AxelEckenberger

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