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 ()
{
public static object GetWebApplicationSection (string sectionName)
{
_Configuration config = GetWebApplicationConfiguration ();
+ if (config == null)
+ return null;
ConfigurationSection section = config.GetSection (sectionName);
-
+ if (section == null)
+ return null;
+
return get_runtime_object.Invoke (section, new object [0]);
}
static private Web20DefaultConfig config {
get {
- return (Web20DefaultConfig)AppDomain.CurrentDomain.GetData("WebConfigurationManager.config");
+ return (Web20DefaultConfig) AppDomain.CurrentDomain.GetData ("Web20DefaultConfig.config");
+ }
+ set {
+ AppDomain.CurrentDomain.SetData ("Web20DefaultConfig.config", value);
+ }
+ }
+
+ static private IInternalConfigSystem configSystem {
+ get {
+ return (IInternalConfigSystem) AppDomain.CurrentDomain.GetData ("IInternalConfigSystem.configSystem");
}
set {
- AppDomain.CurrentDomain.SetData("WebConfigurationManager.config", value);
+ AppDomain.CurrentDomain.SetData ("IInternalConfigSystem.configSystem", value);
}
}
#else