X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FSystem.Configuration%2FConfigurationSettings.cs;h=9b2f8e9986b8768ff7ae95a95620bbb19cb9d7a1;hb=0c44dca122d519ccaa13cab1d7896d5a13dffda4;hp=dcd54ca7fe03b69fe24f348634c7f34ce3f10684;hpb=a097b5471761180c4aae2dab224ed9caeeae3e86;p=mono.git diff --git a/mcs/class/System/System.Configuration/ConfigurationSettings.cs b/mcs/class/System/System.Configuration/ConfigurationSettings.cs index dcd54ca7fe0..9b2f8e9986b 100644 --- a/mcs/class/System/System.Configuration/ConfigurationSettings.cs +++ b/mcs/class/System/System.Configuration/ConfigurationSettings.cs @@ -32,11 +32,6 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -#if CONFIGURATION_DEP && !TARGET_JVM -extern alias PrebuiltSystem; -using NameValueCollection = PrebuiltSystem.System.Collections.Specialized.NameValueCollection; -#endif - using System; using System.Collections; using System.Collections.Specialized; @@ -47,52 +42,32 @@ using System.Security.Permissions; using System.Xml; using System.Xml.XPath; #endif -#if TARGET_JVM -using vmw.common; -using vmw.@internal.io; -#endif namespace System.Configuration { public sealed class ConfigurationSettings { -#if !TARGET_JVM static IConfigurationSystem config = DefaultConfig.GetInstance (); -#else - static IConfigurationSystem config { - get { - IConfigurationSystem conf = (IConfigurationSystem) AppDomain.CurrentDomain.GetData ("ConfigurationSettings.Config"); - if (conf == null) { - conf = DefaultConfig.GetInstance (); - AppDomain.CurrentDomain.SetData ("ConfigurationSettings.Config", conf); - } - return conf; - } - set { - AppDomain.CurrentDomain.SetData ("ConfigurationSettings.Config", value); - } - } -#endif static object lockobj = new object (); private ConfigurationSettings () { } -#if NET_2_0 [Obsolete ("This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.GetSection")] -#endif public static object GetConfig (string sectionName) { +#if CONFIGURATION_DEP + return ConfigurationManager.GetSection (sectionName); +#else return config.GetConfig (sectionName); +#endif } -#if NET_2_0 [Obsolete ("This property is obsolete. Please use System.Configuration.ConfigurationManager.AppSettings")] -#endif public static NameValueCollection AppSettings { get { -#if NET_2_0 && CONFIGURATION_DEP +#if CONFIGURATION_DEP object appSettings = ConfigurationManager.GetSection ("appSettings"); #else object appSettings = GetConfig ("appSettings"); @@ -123,23 +98,7 @@ namespace System.Configuration // class DefaultConfig : IConfigurationSystem { -#if !TARGET_JVM static readonly DefaultConfig instance = new DefaultConfig (); -#else - static DefaultConfig instance { - get { - DefaultConfig conf = (DefaultConfig) AppDomain.CurrentDomain.GetData ("DefaultConfig.instance"); - if (conf == null) { - conf = new DefaultConfig (); - AppDomain.CurrentDomain.SetData ("DefaultConfig.instance", conf); - } - return conf; - } - set { - AppDomain.CurrentDomain.SetData ("DefaultConfig.instance", value); - } - } -#endif ConfigurationData config; private DefaultConfig () @@ -151,9 +110,7 @@ namespace System.Configuration return instance; } -#if NET_2_0 [Obsolete ("This method is obsolete. Please use System.Configuration.ConfigurationManager.GetConfig")] -#endif public object GetConfig (string sectionName) { Init (); @@ -167,9 +124,13 @@ namespace System.Configuration return; ConfigurationData data = new ConfigurationData (); - if (!data.Load (GetMachineConfigPath ())) - throw new ConfigurationException ("Cannot find " + GetMachineConfigPath ()); + if (data.LoadString (GetBundledMachineConfig ())) { + // do nothing + } else { + if (!data.Load (GetMachineConfigPath ())) + throw new ConfigurationException ("Cannot find " + GetMachineConfigPath ()); + } string appfile = GetAppConfigPath (); if (appfile == null) { config = data; @@ -183,20 +144,18 @@ namespace System.Configuration config = data; } } -#if TARGET_JVM - internal static string GetMachineConfigPath () + [MethodImplAttribute(MethodImplOptions.InternalCall)] + extern private static string get_bundled_machine_config (); + internal static string GetBundledMachineConfig () { - return "/machine.config"; + return get_bundled_machine_config (); } -#else [MethodImplAttribute(MethodImplOptions.InternalCall)] extern private static string get_machine_config_path (); internal static string GetMachineConfigPath () { return get_machine_config_path (); } -#endif - private static string GetAppConfigPath () { AppDomainSetup currentInfo = AppDomain.CurrentDomain.SetupInformation; @@ -223,7 +182,9 @@ namespace System.Configuration public readonly string TypeName; public readonly bool AllowLocation; public readonly AllowDefinition AllowDefinition; +#if XML_DEP public string FileName; +#endif public readonly bool RequirePermission; public SectionData (string sectionName, string typeName, @@ -278,29 +239,14 @@ namespace System.Configuration #if (XML_DEP) this.fileName = fileName; if (fileName == null -#if !TARGET_JVM || !File.Exists (fileName) -#endif ) return false; XmlTextReader reader = null; try { -#if !TARGET_JVM FileStream fs = new FileStream (fileName, FileMode.Open, FileAccess.Read); -#else - Stream fs = (Stream) vmw.common.IOUtils.getStream (fileName); - - //patch for machine.config - if (fs == null && fileName.EndsWith ("machine.config")) { - fs = (Stream) IOUtils.getStreamForGHConfigs (fileName); - } - - if (fs == null) { - return false; - } -#endif reader = new XmlTextReader (fs); if (InitRead (reader)) ReadConfigFile (reader); @@ -316,6 +262,30 @@ namespace System.Configuration return true; } + public bool LoadString (string data) + { + if (data == null) + return false; +#if (XML_DEP) + XmlTextReader reader = null; + + try { + TextReader tr = new StringReader (data); + reader = new XmlTextReader (tr); + if (InitRead (reader)) + ReadConfigFile (reader); + } catch (ConfigurationException) { + throw; + } catch (Exception e) { + throw new ConfigurationException ("Error reading " + fileName, e); + } finally { + if (reader != null) + reader.Close(); + } +#endif + return true; + } + object GetHandler (string sectionName) { lock (factories) { @@ -619,9 +589,7 @@ namespace System.Configuration value = reader.Value; } else -#if NET_2_0 if (reader.Name != "type") -#endif ThrowException ("Unrecognized attribute.", reader); } while (reader.MoveToNextAttribute ()); @@ -701,7 +669,7 @@ namespace System.Configuration private void ReadConfigFile (XmlTextReader reader) { - int depth = reader.Depth; + //int depth = reader.Depth; for (reader.MoveToContent (); !reader.EOF && reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) {