Merge pull request #2020 from tomjepp/master
[mono.git] / mcs / class / System / System.Net / WebResponse.cs
index b87d65b40c2e2f3b18c79f2672c4209949d8cdd5..f59b24fc1c38cfbe8e491a3db3fc8cf81f7d000a 100644 (file)
@@ -32,12 +32,8 @@ using System.Runtime.Serialization;
 \r
 namespace System.Net \r
 {\r
-#if MOONLIGHT\r
-       internal abstract class WebResponse : MarshalByRefObject, ISerializable, IDisposable {\r
-#else\r
        [Serializable]\r
        public abstract class WebResponse : MarshalByRefObject, ISerializable, IDisposable {\r
-#endif\r
                // Constructors\r
                \r
                protected WebResponse () { }\r
@@ -72,7 +68,9 @@ namespace System.Net
                public virtual bool IsFromCache\r
                {\r
                        get {\r
-                               throw GetMustImplement ();\r
+                               return false;\r
+                               // Better to return false than to kill the application\r
+                               // throw GetMustImplement ();\r
                        }\r
                }\r
                \r
@@ -88,6 +86,13 @@ namespace System.Net
                        get { throw new NotSupportedException (); }\r
                }               \r
 \r
+               public virtual bool SupportsHeaders {\r
+                       get {\r
+                               // The managed stack always returns this as true, it is only\r
+                               // the Silverlight stack that does not support this.\r
+                               return true;\r
+                       }\r
+               }\r
                // Methods\r
                \r
                public virtual void Close()\r
@@ -99,13 +104,15 @@ namespace System.Net
                {\r
                        throw new NotSupportedException ();\r
                }\r
-#if TARGET_JVM //enable overrides for extenders\r
-               public virtual void Dispose()\r
-#else\r
-               void IDisposable.Dispose()\r
-#endif\r
+               public void Dispose ()\r
+               {\r
+                       Dispose (true);\r
+               }\r
+               \r
+               protected virtual void Dispose (bool disposing)\r
                {\r
-                       Close ();\r
+                       if (disposing)\r
+                               Close ();\r
                }\r
 \r
                void ISerializable.GetObjectData\r