我們有一個非常奇怪的問題,下面的代碼在所有開發人員機器/我們的2個測試服務器上工作正常,無論是使用代碼還是使用內置版本,但是當它運行時在虛擬機與Windows 2003服務器和asp.net v2.0它會引發錯誤無法訪問封閉的流ASP.net 2.0版
無法訪問封閉的流。
public String convertResultToXML(CResultObject[] state)
{
MemoryStream stream = null;
TextWriter writer = null;
try
{
stream = new MemoryStream(); // read xml in memory
writer = new StreamWriter(stream, Encoding.Unicode);
// get serialise object
XmlSerializer serializer = new XmlSerializer(typeof(CResultObject[]));
serializer.Serialize(writer, state); // read object
int count = (int)stream.Length; // saves object in memory stream
byte[] arr = new byte[count];
stream.Seek(0, SeekOrigin.Begin);
// copy stream contents in byte array
stream.Read(arr, 0, count);
UnicodeEncoding utf = new UnicodeEncoding(); // convert byte array to string
return utf.GetString(arr).Trim();
}
catch
{
return string.Empty;
}
finally
{
if (stream != null) stream.Close();
if (writer != null) writer.Close();
}
}
任何想法,爲什麼會這樣?
這是幹什麼的? – 2012-03-16 13:16:39
這是使用'using'的一個很好的理由。 – 2012-03-16 13:17:12
@ Moo-Juice使用只是轉換爲嘗試終於 – Aristos 2012-03-16 13:18:18