मुझे डेटाकॉन्ट्राक्टेरियलाइज़र के बारे में एक त्वरित प्रश्न था। शायद यह एक स्ट्रीम सवाल है। मुझे कोड का एक टुकड़ा मिला जो एक फाइलस्ट्रीम में एक्सएमएल लिखता है। मैं मूल रूप से फ़ाइल नहीं चाहता और केवल स्ट्रिंग आउटपुट की आवश्यकता है।DataContractSerializer - मैं xml को एक स्ट्रिंग में कैसे आउटपुट कर सकता हूं (फ़ाइल के विपरीत)
public static string DataContractSerializeObject<T>(T objectToSerialize)
{
var fs = new FileStream("test.xml", FileMode.OpenOrCreate);
var serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(fs, objectToSerialize);
fs.Close();
return fs.ToString();
}
fs.ToString() स्पष्ट रूप से वह नहीं है जिसे मैं ढूंढ रहा हूं। क्या स्ट्रीम या लेखक इत्यादि, क्या मैं सिर्फ उचित स्ट्रिंग को वापस करने और फ़ाइल बनाने के लिए उपयोग नहीं कर सकता? मैंने एक्सएमएल को फाइलस्ट्रीम बनाया है और यह वही है जो मैं ढूंढ रहा हूं। XmlSerializer ने XML को थोड़ा अजीब लिखा और मैं इस मामले में DataContractSerializer के आउटपुट को प्राथमिकता देता हूं। क्या कोई मुझे सही दिशा दिखा सकता है?
लग रहा है आप की तरह इंटर पैरामीटर बदल दिया, यह memstm.Seek होना चाहिए (0, SeekOrigin.Begin); – xar
@xar: हाँ, आप बिल्कुल सही हैं - उस गलती को खोजने के लिए धन्यवाद - मैंने इसे अभी तय किया है –
यह समाधान अनावश्यक रूप से utf8 से/एन्कोड करता है। –