2006-01-26 Chris Toshok <toshok@ximian.com>
authorChris Toshok <toshok@novell.com>
Fri, 27 Jan 2006 02:20:08 +0000 (02:20 -0000)
committerChris Toshok <toshok@novell.com>
Fri, 27 Jan 2006 02:20:08 +0000 (02:20 -0000)
* WebEncoding.cs: rework this so we cache the section, and so we
swallow exceptions based on a broken configuration.

svn path=/trunk/mcs/; revision=56139

mcs/class/System.Web/System.Web.Util/ChangeLog
mcs/class/System.Web/System.Web.Util/WebEncoding.cs

index b47d9ad5a0035128a35a6e2374019f3704a9addf..db4fbc07cca747262fdc5486befddbe24f63a48d 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-26  Chris Toshok  <toshok@ximian.com>
+
+       * WebEncoding.cs: rework this so we cache the section, and so we
+       swallow exceptions based on a broken configuration.
+
 2006-01-09  Konstantin Triger <kostat@mainsoft.com>
 
        AltSerialization.cs: under TARGET_JVM: merging /main/4
index 1e53db51d6be3aa75accc66d80c74194795b8f03..3e6ef94d26b8fb08712d0106dac45c345165b183 100644 (file)
@@ -36,44 +36,44 @@ namespace System.Web.Util
 {
        internal class WebEncoding
        {
-               static public Encoding FileEncoding {
-                       get {
 #if CONFIGURATION_2_0
-                               GlobalizationSection gc = (GlobalizationSection) WebConfigurationManager.GetWebApplicationSection ("system.web/globalization");
+               static bool cached;
+               static GlobalizationSection sect;
+               static GlobalizationSection GlobalizationConfig {
+                       get {
+                               if (!cached) {
+                                       try {
+                                               sect = (GlobalizationSection) WebConfigurationManager.GetWebApplicationSection ("system.web/globalization");
+                                       }
+                                       catch { }
+                                       cached = true;
+                               }
+                               return sect;
+                       }
+               }
 #else
-                               GlobalizationConfiguration gc = GlobalizationConfiguration.GetInstance (null);
-                               if (gc == null)
-                                       return Encoding.Default;
+               static GlobalizationConfiguration GlobalizationConfig {
+                       get {
+                               return GlobalizationConfiguration.GetInstance (null);
+                       }
+               }
 #endif
 
-                               return gc.FileEncoding;
+               static public Encoding FileEncoding {
+                       get {
+                               return GlobalizationConfig != null ? GlobalizationConfig.FileEncoding : Encoding.Default;
                        }
                }
 
                static public Encoding ResponseEncoding {
                        get {
-#if CONFIGURATION_2_0
-                               GlobalizationSection gc = (GlobalizationSection) WebConfigurationManager.GetWebApplicationSection ("system.web/globalization");
-#else
-                               GlobalizationConfiguration gc = GlobalizationConfiguration.GetInstance (null);
-                               if (gc == null)
-                                       return Encoding.Default;
-#endif
-
-                               return gc.ResponseEncoding;
+                               return GlobalizationConfig != null ? GlobalizationConfig.ResponseEncoding : Encoding.Default;
                        }
                }
 
                static public Encoding RequestEncoding {
                        get {
-#if CONFIGURATION_2_0
-                               GlobalizationSection gc = (GlobalizationSection) WebConfigurationManager.GetWebApplicationSection ("system.web/globalization");
-#else
-                               GlobalizationConfiguration gc = GlobalizationConfiguration.GetInstance (null);
-                               if (gc == null)
-                                       return Encoding.Default;
-#endif
-                               return gc.RequestEncoding;
+                               return GlobalizationConfig != null ? GlobalizationConfig.RequestEncoding : Encoding.Default;
                        }
                }
        }