diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/Hosting/HttpHost.cs')
-rw-r--r-- | src/DotNetOpenAuth.Test/Hosting/HttpHost.cs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/DotNetOpenAuth.Test/Hosting/HttpHost.cs b/src/DotNetOpenAuth.Test/Hosting/HttpHost.cs index 3ccd8bc..dee1ea3 100644 --- a/src/DotNetOpenAuth.Test/Hosting/HttpHost.cs +++ b/src/DotNetOpenAuth.Test/Hosting/HttpHost.cs @@ -12,7 +12,7 @@ namespace DotNetOpenAuth.Test.Hosting { using System.Threading; internal class HttpHost : IDisposable { - private HttpListener listener; + private readonly HttpListener listener; private Thread listenerThread; private AspNetHost aspNetHost; @@ -60,13 +60,15 @@ namespace DotNetOpenAuth.Test.Hosting { if (body != null) { request.Method = "POST"; request.ContentLength = body.Length; - using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) + using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) { sw.Write(body); + } } try { using (WebResponse response = request.GetResponse()) { - using (StreamReader sr = new StreamReader(response.GetResponseStream())) + using (StreamReader sr = new StreamReader(response.GetResponseStream())) { return sr.ReadToEnd(); + } } } catch (WebException ex) { Logger.Error("Exception in HttpHost", ex); @@ -81,9 +83,16 @@ namespace DotNetOpenAuth.Test.Hosting { #region IDisposable Members public void Dispose() { - this.listener.Close(); - this.listenerThread.Join(1000); - this.listenerThread.Abort(); + this.Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) { + if (disposing) { + this.listener.Close(); + this.listenerThread.Join(1000); + this.listenerThread.Abort(); + } } #endregion |