पर पढ़ना मैं एक ऑब्जेक्ट को एक्सएमएल स्ट्रिंग में लिखने की कोशिश कर रहा हूं और उस स्ट्रिंग को ले और इसे डीबी में सहेज रहा हूं। लेकिन सबसे पहले मुझे स्ट्रिंग प्राप्त करने की आवश्यकता है ...मेमोरी स्ट्रीम से स्ट्रिंग
private static readonly Encoding LocalEncoding = Encoding.UTF8;
public static string SaveToString<T> (T settings)
{
Stream stream = null;
TextWriter writer = null;
string settingsString = null;
try
{
stream = new MemoryStream();
var serializer = new XmlSerializer(typeof(T));
writer = new StreamWriter(stream, LocalEncoding);
serializer.Serialize(writer, settings);
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
settingsString = LocalEncoding.GetString(buffer);
}
catch(Exception ex)
{
// If the action cancels we don't want to throw, just return null.
}
finally
{
if (stream != null)
stream.Close();
if(writer != null)
writer.Close();
}
return settingsString;
}
ऐसा लगता है कि स्ट्रीम बाइट से भर जाती है। लेकिन जब मैं इसे वापस बफर में पढ़ता हूं और फिर स्ट्रिंग में ... बफर '0' से भरा होता है! यकीन नहीं है कि मैं यहाँ क्या गलत कर रहा हूँ दोस्तों।
संभव डुप्लिकेट [कैसे आप एक MemoryStream से एक स्ट्रिंग मिलता है?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from -ए-मेमोरीस्ट्रीम) – andyp