Author: roeie
Date: 2006-08-28 11:25:51 -0400 (Mon, 28 Aug 2006)
New Revision: 64476
Modified:
trunk/mcs/class/System.Web/ChangeLog
trunk/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
Log:
corrections for static fields at WebConfigurationManager which are relevant
only when running on mainsoft platform (TARGET_j2EE)
Modified: trunk/mcs/class/System.Web/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/ChangeLog 2006-08-28 15:09:03 UTC (rev
64475)
+++ trunk/mcs/class/System.Web/ChangeLog 2006-08-28 15:25:51 UTC (rev
64476)
@@ -1,3 +1,8 @@
+2006-08-27 Roei Erez <[EMAIL PROTECTED]>
+
+ * WebConfigurationManager.cs: corrections for static variables on
mainsoft platform
+
+=======
2006-08-28 Yoni Klain <[EMAIL PROTECTED]>
* System.Web_test.dll.sources: add new
\System.Web.UI\ClientScriptManagerTest.cs
Modified:
trunk/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
===================================================================
---
trunk/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
2006-08-28 15:09:03 UTC (rev 64475)
+++
trunk/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
2006-08-28 15:25:51 UTC (rev 64476)
@@ -43,8 +43,56 @@
public static class WebConfigurationManager
{
+#if !TARGET_J2EE
static IInternalConfigConfigurationFactory configFactory;
static Hashtable configurations = new Hashtable ();
+#else
+ static internal IInternalConfigConfigurationFactory configFactory
+ {
+ get{
+ IInternalConfigConfigurationFactory factory =
(IInternalConfigConfigurationFactory)AppDomain.CurrentDomain.GetData("WebConfigurationManager.configFactory");
+ if (factory == null){
+ lock (AppDomain.CurrentDomain){
+ object initialized =
AppDomain.CurrentDomain.GetData("WebConfigurationManager.configFactory.initialized");
+ if (initialized == null){
+ PropertyInfo prop =
typeof(ConfigurationManager).GetProperty("ConfigurationFactory",
BindingFlags.Static | BindingFlags.NonPublic);
+ if (prop != null){
+ factory = prop.GetValue(null, null) as
IInternalConfigConfigurationFactory;
+ configFactory = factory;
+ }
+ }
+ }
+ }
+ return factory != null ? factory : configFactory;
+ }
+ set{
+
AppDomain.CurrentDomain.SetData("WebConfigurationManager.configFactory", value);
+
AppDomain.CurrentDomain.SetData("WebConfigurationManager.configFactory.initialized",
true);
+ }
+ }
+
+ static internal Hashtable configurations
+ {
+ get{
+ Hashtable table =
(Hashtable)AppDomain.CurrentDomain.GetData("WebConfigurationManager.configurations");
+ if (table == null){
+ lock (AppDomain.CurrentDomain){
+ object initialized =
AppDomain.CurrentDomain.GetData("WebConfigurationManager.configurations.initialized");
+ if (initialized == null){
+ table = new Hashtable();
+ configurations = table;
+ }
+ }
+ }
+ return table != null ? table : configurations;
+
+ }
+ set{
+
AppDomain.CurrentDomain.SetData("WebConfigurationManager.configurations",
value);
+
AppDomain.CurrentDomain.SetData("WebConfigurationManager.configurations.initialized",
true);
+ }
+ }
+#endif
static WebConfigurationManager ()
{
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches