// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if CONFIGURATION_DEP
-extern alias PrebuiltSystem;
-using NameValueCollection = PrebuiltSystem.System.Collections.Specialized.NameValueCollection;
-#endif
-
using System;
using System.Collections;
using System.Collections.Specialized;
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");
//
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 ()
return instance;
}
-#if NET_2_0
[Obsolete ("This method is obsolete. Please use System.Configuration.ConfigurationManager.GetConfig")]
-#endif
public object GetConfig (string sectionName)
{
Init ();
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;
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;
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,
#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);
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) {
value = reader.Value;
}
else
-#if NET_2_0
if (reader.Name != "type")
-#endif
ThrowException ("Unrecognized attribute.", reader);
} while (reader.MoveToNextAttribute ());
private void ReadConfigFile (XmlTextReader reader)
{
- int depth = reader.Depth;
+ //int depth = reader.Depth;
for (reader.MoveToContent ();
!reader.EOF && reader.NodeType != XmlNodeType.EndElement;
reader.MoveToContent ()) {