खैर से एक डाली myObjectको byte[]कभी नहीं काम करने के लिए जा जब तक आप एक स्पष्ट रूपांतरण या अगर मिल गया है है myObject है एक byte[]। आपको किसी प्रकार की क्रमबद्धता की आवश्यकता है । वहाँ बहुत सारे हैं, जिसमें प्रोटोकॉल बफ़र्स भी शामिल हैं जो मेरे निकट है और मुझे प्रिय है। यह अंतरिक्ष और समय दोनों के मामले में बहुत "दुबला और मतलबी" है।
आप पाएंगे कि लगभग सभी सीरियलाइज़ेशन फ्रेमवर्क में महत्वपूर्ण प्रतिबंध हैं कि आप क्या-क्या सीरीज़ कर सकते हैं, हालांकि - क्रॉस-प्लेटफॉर्म होने के कारण प्रोटोकॉल बफ़र्स कुछ से अधिक हैं।
यदि आप अधिक आवश्यकताएं दे सकते हैं, तो हम आपकी अधिक सहायता कर सकते हैं - लेकिन यह कास्टिंग के रूप में सरल नहीं है ...
संपादित करें: बस इस पर प्रतिक्रिया करने के लिए:
ऑब्जेक्ट की बाइट्स को सम्मिलित करने के लिए मुझे अपनी बाइनरी फ़ाइल की आवश्यकता है। केवल बाइट्स, कोई मेटाडेटा जो भी हो। पैक वस्तु-वस्तु। तो मैं कस्टम क्रमांकन लागू करूंगा।
कृपया ध्यान रखें कि आपकी वस्तुओं में बाइट्स अक्सर संदर्भ होते हैं ... इसलिए आपको उनके साथ क्या करना है, यह जानने की आवश्यकता होगी।
मुझे लगता है कि आपको लगता है कि डिजाइन और अपने खुद के कस्टम क्रमांकन ढांचे को लागू करना आपके द्वारा कल्पना की तुलना में कठिन है।
मैं व्यक्तिगत रूप से सिफारिश करूंगा कि यदि आपको केवल कुछ विशिष्ट प्रकारों के लिए ऐसा करने की आवश्यकता है, तो आप सामान्य क्रमबद्ध रूपरेखा के साथ आने की कोशिश नहीं करते। बस एक इंस्टेंस मेथड और सभी प्रकार के स्टैटिक मेथड को लागू करें जिनकी आपको आवश्यकता है:
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
एक बात ध्यान में रखें: यदि आपको विरासत में मिला है तो सब कुछ अधिक मुश्किल हो जाता है। विरासत के बिना, यदि आप जानते हैं कि आप किस प्रकार से शुरू कर रहे हैं, तो आपको किसी भी प्रकार की जानकारी शामिल करने की आवश्यकता नहीं है। बेशक, वहाँ भी संस्करण की बात है - क्या आप अपने प्रकार के विभिन्न संस्करणों के साथ पिछड़े और आगे संगतता के बारे में चिंता करने की ज़रूरत है?