मैं एक प्रोटोटाइप टीसीपी कनेक्शन लिख रहा हूं और मुझे भेजे जाने वाले डेटा को समरूप बनाने में कुछ परेशानी हो रही है।
फिलहाल, मैं स्ट्रिंग्स के अलावा कुछ नहीं भेज रहा हूं, लेकिन भविष्य में हम किसी भी ऑब्जेक्ट को भेजने में सक्षम होना चाहते हैं।
इस समय कोड काफी सरल है, क्योंकि मुझे लगा कि सब कुछ बाइट सरणी में डाला जा सकता है:
void SendData(object headerObject, object bodyObject)
{
byte[] header = (byte[])headerObject; //strings at runtime,
byte[] body = (byte[])bodyObject; //invalid cast exception
// Unable to cast object of type 'System.String' to type 'System.Byte[]'.
...
}
यह कोर्स आसानी से पर्याप्त हल है
if( state.headerObject is System.String ){...}
समस्या यह है, अगर मैं इसे इस तरह से करता हूं, तो मुझे किसी भी प्रकार की वस्तु की जांच करने की आवश्यकता होती है जिसे रनटाइम के दौरान बाइट में नहीं डाला जा सकता है।
चूँकि मैं हर उस वस्तु को नहीं जानता जो किसी बाइट में नहीं डाली जा सकती है [] रनटाइम पर, यह वास्तव में एक विकल्प नहीं है।
C # .NET 4.0 में किसी भी वस्तु को बाइट सरणी में कैसे परिवर्तित किया जाता है?
FileStream
, या किसी भी ऑब्जेक्ट की तरह जो किसी हैंडल को इनकैप्सुलेट करता है)।