मार्शलबाइफऑब्जेक्ट का प्रमुख उपयोग क्या है?


93

क्या है MarsBByRefObject के लिए उद्देश्य?

जवाबों:


107

दूरस्थ रूप से; इसका मतलब है कि AppDomains या मशीनों के बीच, वस्तु को क्रमबद्ध और स्थानांतरित करने के बजाय , वस्तु एक छोर पर रहती है और दूसरे पर एक प्रॉक्सी बनाई जाती है। प्रॉक्सी के लिए सभी विधि कॉल इंटरसेप्टेड हैं और कॉल को RPC विकी , एमएसडीएन के रूप में प्रेषित किया जाता है , जिससे विधि अन्य मशीन पर निष्पादित होती है (आमतौर पर तर्कों और वापसी मान को क्रमबद्ध करते हुए)।

नोट: यह अप्रत्याशित रूप से "गपशप" इंटरफेस को जन्म दे सकता है। ऑब्जेक्ट / प्रॉक्सी / RPC दृष्टिकोण अब एक स्पष्ट सेवा सीमा के साथ दृष्टिकोण के लिए कम बेहतर है ; Microsoft अब WCF विकी , msdn को रीमोट करने के बजाय अनुशंसित करता है ।


5
@ तिरछा - यह काफी जटिल है, लेकिन कम से कम हमें यह स्पष्ट है कि महंगी कॉल कहां हैं। यदि आप बैंडविड्थ का मतलब है , वहाँ कि कम करने के तरीके हैं।
— मार्क Gravell

1
कभी-कभी आप स्पष्ट सीमाएं नहीं चाहते हैं, जैसे कि processdomain.codeplex.com के लिए सूचीबद्ध परिदृश्यों के बजाय आप पारदर्शिता चाहते हैं।
— एंड्रयू सविनाख

1
सी # में सभी संदर्भ प्रकार रेफरल डिफ़ॉल्ट रूप से मार्शाल हैं या इसे कैसे जाना जाता है, यदि यह मूर्खतापूर्ण सवाल है, तो यह नया है। इस अवधारणा के साथ नया है @MarcGravell
— एहसान सज्जाद

1
@ ईशान नहीं, वे डिफ़ॉल्ट रूप से मार्शल-बाय-वैल हैं। एप्लिकेशन-डोमेन की सीमाओं को पार करते समय मार्शल केवल लागू होता है, हालांकि, यह दुर्लभ है कि यह और भी प्रासंगिक है। मार्शल-दर-रेफरी होने के लिए, यह MashalByRefObject वारिस चाहिए
— मार्क Gravell

28

MarshalByRefObjectAOP का एक और महत्वपूर्ण उपयोग सिंक-चेन को रिमोटिंग के माध्यम से लागू करने के लिए है।

यदि आपके पास एक ऐसी वस्तु है जो व्युत्पन्न है ContextBoundObject(जो स्वयं से प्राप्त होती है MarshalByRefObject) तो आप इसे एक ही AppDomain के भीतर एक अलग संदर्भ में त्वरित कर सकते हैं और वस्तुओं के बीच संचार स्वचालित रूप से Remoting प्रॉक्सी सिस्टम के माध्यम से जाते हैं - आपको रीमोटिंग सिंक में कस्टम सिंक प्लग करने की अनुमति देता है- जंजीर।

यह अंततः आपको अपनी वस्तुओं को कॉल करने की विधि को सजाने और क्रॉस-कटिंग सेवाओं को लागू करने की अनुमति देता है, जैसे लॉगिंग और सुरक्षा आदि।


इन पर सोच-विचार करें कि हम एमबीआर ऑब्जेक्ट्स में ऐसी विधि कॉल कैसे सजा सकते हैं? क्या वे सजावट प्रदर्शन के मामले में खर्च होंगे?
— SO19

9

यह बुनियादी उपयोग दो उपग्रहों के बीच वस्तुओं के समर्थन की पहुंच के लिए है और ये उपग्रहों को एक ही कंप्यूटर पर या अलग-अलग कंप्यूटरों में रीमोट करने के माध्यम से हो सकता है।

यहाँ देखें


5

कॉलर एप्लिकेशन के एप्लिकेशन डोमेन के बाहर की किसी भी वस्तु को रिमोट ऑब्जेक्ट माना जाना चाहिए। एक दूरस्थ वस्तु जिसे MarshalByRefObjectकक्षा से प्राप्त किया जाना चाहिए । किसी भी वस्तु को दूरस्थ वस्तु में से परिवर्तित करके परिवर्तित किया जा सकता है MarshalByRefObject। बिना विरासत में मिली वस्तुओं को नॉन-रेमोटेबल ऑब्जेक्ट MarshalByRefObjectकहा जाता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.