c# - MarshalByRefObject का मुख्य उपयोग क्या है?




.net (3)

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


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


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

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


MarshalByRefObject का एक अन्य महत्वपूर्ण उपयोग सिंक-चेन को MarshalByRefObject करने के माध्यम से एओपी को लागू करने के लिए है।

यदि आपके पास कोई ऑब्जेक्ट है जो ContextBoundObject (जो स्वयं MarshalByRefObject से प्राप्त होता है) से प्राप्त होता है, तो आप इसे उसी MarshalByRefObject भीतर एक अलग संदर्भ में तुरंत चालू कर सकते हैं और ऑब्जेक्ट्स के बीच संचार स्वचालित रूप से रिमोटिंग प्रॉक्सी सिस्टम के माध्यम से जा सकते हैं - जिससे आप रिमोटिंग में कस्टम सिंक प्लग कर सकते हैं सिंक श्रृंखला।

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





.net