2009-06-03 33 views
12

.NET दुनिया में, मार्शलिंग का अर्थ केवल किसी सीमा या तार पर स्थानांतरण के लिए किसी ऑब्जेक्ट/डेटा की तैयारी करना है या इसका मतलब है तैयारी और को सीमा पार करें या एक तार पर।'marshalling' शब्द की सटीक परिभाषा

और कॉल का मतलब मार्शल का क्या मतलब है। क्या इसका मतलब केवल संदर्भ सीमा पर "स्थानांतरण" के लिए कॉल का पैकेजिंग है या क्या यह कॉलिंग का पैकेजिंग और भेजना (यानी आमंत्रण) है?

हामी होने के लिए क्षमा करें ...

Clarry

+0

टैग के रूप में 'dotnot' का उपयोग न करें –

उत्तर

1

के रूप में मैं इसे समझ लिया है यह डेटा की तैयारी, नहीं हस्तांतरण है। फिर भी हस्तांतरण को शामिल करने के लिए शब्द का उपयोग करना असामान्य नहीं है (मैं इसे करने का भी दोषी हूं)।

2

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

मुझे लगता है कि यह किसी ऐसे माहौल में डेटा या ऑब्जेक्ट को "उधार" के संदर्भ में सोचता है जिसमें यह परिचित नहीं है। इसमें अलग-अलग एन्कोडिंग, एक रैपर इत्यादि शामिल हो सकते हैं, और कैसे ऑब्जेक्ट स्थानांतरित हो जाता है वह मार्शलिंग प्रक्रिया का एक महत्वपूर्ण हिस्सा है।

जब तक डेटा या ऑब्जेक्ट को वास्तव में अपने नए संदर्भ में प्रस्तुत नहीं किया जाता है, तो मुझे इसे मार्शल नहीं माना जाता है। उस बिंदु पर इसे अभी परिवर्तित, एन्क्रिप्टेड, लपेटा गया या जो भी हो गया है।

उदाहरण के तौर पर, JSON अक्सर एक ऑब्जेक्ट या डेटा को एक प्रक्रिया से दूसरे में स्थानांतरित करने के लिए उपयोग किया जाता है। जब आप JSON में कनवर्ट करते हैं, तो मैं बस मानता हूं कि एक डेटा संरचना से दूसरे में परिवर्तन। एक बार तार पर स्थानांतरित हो जाने के बाद, फिर इसे मार्शल किया जा रहा है।

तो, कोई संदर्भ परिवर्तन नहीं, कोई मार्शल नहीं।

यह मेरा दो सेंट है।

1

मुझे लगता है कि यह दोनों परिदृश्यों का प्रतिनिधित्व कर सकता है।

  • डेटा केवल: PInvoke परिदृश्यों पर विचार करें। मार्शलिंग आमतौर पर नेट प्रारूप से संबंधित सी प्रारूप में डेटा को परिवर्तित करने के कार्य का वर्णन करने के लिए प्रयोग किया जाता है।
  • डेटा और कॉल: COM कॉल पर विचार करें जो अपार्टमेंट पार करते हैं। इस मामले में कॉल और कॉल के लिए आवश्यक डेटा दोनों को मार्शल माना जाता है क्योंकि वास्तविक कॉल COM अपार्टमेंट सीमाओं को पार करना होगा। मुझे एहसास है कि आपने नेट के संदर्भ में यह पूछा लेकिन मुझे विश्वास है कि यह एक ठोस उदाहरण है जो नेट से संबंधित है। धागे के बीच जाने के लिए ISynchronizedInvoke का उपयोग उदाहरण के लिए विचार करें।
1

"मार्शल" के कई अर्थ हैं, लेकिन इसके अलावा यह शीर्षक है, इसका मतलब है। । ।

मार्शल - mobilize: कार्रवाई या उपयोग के लिए तैयार करें; "मार्शल संसाधन"

तो इसका मतलब केवल "पैकेज करने के लिए" होना चाहिए, न कि "पैकेज करने और भेजने के लिए"।

0

मार्शलिंग एक सीमा

आमतौर पर 2 appdomains के बीच वस्तुओं पारित करने के लिए इस्तेमाल किया करवाते हैं विशुद्ध रूप से है। वायर भाग के ऊपर एक वैकल्पिक चीज है, लेकिन तार पर ऑब्जेक्ट भेजने की प्रक्रिया पहले ऑब्जेक्ट का क्रमिक क्रम है, आमतौर पर भेजने से कुछ अन्य प्रोटोकॉल (टीसीपी/आईपी) होता है।

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