我按照Duwamish7的DuwamishConfiguration和ApplicationConfiguration自己写了个一样的配置类,怎么不读不出配置文件(web.config)里面的东西啊,web.config和我自己写的那个类是照着Duwamish7写的继承了IConfigurationSectionHandler接口
类如下:
public
class
MCConfiguration : IConfigurationSectionHandler
{
private const string DATAACCESS_CONNECTIONSTRING = "ChintMC.DataAccess.ConnectionString";
private const string DATAACCESS_OLEDBDATASOURCE = "ChintMC.DataAccess.OleDbdataSource";
private static String dbConnectionString;
private static String dbOleDbdataSource;
private const String DATAACCESS_CONNECTIONSTRING_DEFAULT = "server=LM;User ID=sa;Password=;database=MC_DB;Connection Reset=FALSE";
private const String DATAACCESS_OLEDBDATASOURCE_DEFAULT = "Provider=SQLOLEDB ;Server=192.168.207.181;Address=192.168.207.181,1433;Database=MC_DB;Uid=sa;Pwd=;";
public Object Create(Object parent, object configContext, XmlNode section)
{
NameValueCollection settings;
try
{
NameValueSectionHandler baseHandler = new NameValueSectionHandler();
settings = (NameValueCollection)baseHandler.Create(parent, configContext, section);
}
catch
{
settings = null;
}
if ( settings == null )
{
dbConnectionString = DATAACCESS_CONNECTIONSTRING_DEFAULT;
dbOleDbdataSource = DATAACCESS_OLEDBDATASOURCE_DEFAULT;
}
else
{
dbConnectionString = ReadSetting(settings, DATAACCESS_CONNECTIONSTRING, DATAACCESS_CONNECTIONSTRING_DEFAULT);
dbOleDbdataSource = ReadSetting(settings, DATAACCESS_OLEDBDATASOURCE, DATAACCESS_OLEDBDATASOURCE_DEFAULT);
}
return settings;
}
public static String ConnectionString
{
get
{
return dbConnectionString;
}
}
public static String OleDbdataSource
{
get
{
return dbOleDbdataSource;
}
}
ReadingSettings#region ReadingSettings
public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (String)setting;
}
catch
{
return defaultValue;
}
}
public static bool ReadSetting(NameValueCollection settings, String key, bool defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToBoolean((String)setting);
}
catch
{
return defaultValue;
}
}
public static int ReadSetting(NameValueCollection settings, String key, int defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToInt32((String)setting);
}
catch
{
return defaultValue;
}
}
public static TraceLevel ReadSetting(NameValueCollection settings, String key, TraceLevel defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (TraceLevel)Convert.ToInt32((String)setting);
}
catch
{
return defaultValue;
}
}
#endregion
{
private const string DATAACCESS_CONNECTIONSTRING = "ChintMC.DataAccess.ConnectionString";
private const string DATAACCESS_OLEDBDATASOURCE = "ChintMC.DataAccess.OleDbdataSource";
private static String dbConnectionString;
private static String dbOleDbdataSource;
private const String DATAACCESS_CONNECTIONSTRING_DEFAULT = "server=LM;User ID=sa;Password=;database=MC_DB;Connection Reset=FALSE";
private const String DATAACCESS_OLEDBDATASOURCE_DEFAULT = "Provider=SQLOLEDB ;Server=192.168.207.181;Address=192.168.207.181,1433;Database=MC_DB;Uid=sa;Pwd=;";
public Object Create(Object parent, object configContext, XmlNode section)
{
NameValueCollection settings;
try
{
NameValueSectionHandler baseHandler = new NameValueSectionHandler();
settings = (NameValueCollection)baseHandler.Create(parent, configContext, section);
}
catch
{
settings = null;
}
if ( settings == null )
{
dbConnectionString = DATAACCESS_CONNECTIONSTRING_DEFAULT;
dbOleDbdataSource = DATAACCESS_OLEDBDATASOURCE_DEFAULT;
}
else
{
dbConnectionString = ReadSetting(settings, DATAACCESS_CONNECTIONSTRING, DATAACCESS_CONNECTIONSTRING_DEFAULT);
dbOleDbdataSource = ReadSetting(settings, DATAACCESS_OLEDBDATASOURCE, DATAACCESS_OLEDBDATASOURCE_DEFAULT);
}
return settings;
}
public static String ConnectionString
{
get
{
return dbConnectionString;
}
}
public static String OleDbdataSource
{
get
{
return dbOleDbdataSource;
}
}
ReadingSettings#region ReadingSettings
public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (String)setting;
}
catch
{
return defaultValue;
}
}
public static bool ReadSetting(NameValueCollection settings, String key, bool defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToBoolean((String)setting);
}
catch
{
return defaultValue;
}
}
public static int ReadSetting(NameValueCollection settings, String key, int defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToInt32((String)setting);
}
catch
{
return defaultValue;
}
}
public static TraceLevel ReadSetting(NameValueCollection settings, String key, TraceLevel defaultValue)
{
try
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (TraceLevel)Convert.ToInt32((String)setting);
}
catch
{
return defaultValue;
}
}
#endregion
<?
xml version="1.0" encoding="utf-8"
?>
< configuration >
< configSections >
< section name ="MCConfiguration" type ="ChintMC.Common.MCConfiguration, ChintMC.Common" />
</ configSections >
< system .web >
< compilation
defaultLanguage ="c#"
debug ="true"
/>
< customErrors
mode ="RemoteOnly"
/>
< authentication mode ="Forms" />
< trace
enabled ="false"
requestLimit ="10"
pageOutput ="false"
traceMode ="SortByTime"
localOnly ="true"
/>
< sessionState
mode ="InProc"
stateConnectionString ="tcpip=127.0.0.1:42424"
sqlConnectionString ="data source=127.0.0.1;user id=sa;password="
cookieless ="false"
timeout ="20"
/>
< globalization
requestEncoding ="utf-8"
responseEncoding ="utf-8"
/>
</ system.web >
< MCConfiguration >
< add key ="ChintMC.DataAccess.OleDbdataSource" value ="Provider=SQLOLEDB ;Server=192.168.207.181;Address=192.168.207.181,1433;Database=MC_DB;Uid=sa;Pwd=;" />
< add key ="ChintMC.DataAccess.ConnectionString" value ="server=LM;User ID=sa;Password=;database=MC_DB;Connection Reset=FALSE" />
</ MCConfiguration >
</ configuration >
< configuration >
< configSections >
< section name ="MCConfiguration" type ="ChintMC.Common.MCConfiguration, ChintMC.Common" />
</ configSections >
< system .web >
< compilation
defaultLanguage ="c#"
debug ="true"
/>
< customErrors
mode ="RemoteOnly"
/>
< authentication mode ="Forms" />
< trace
enabled ="false"
requestLimit ="10"
pageOutput ="false"
traceMode ="SortByTime"
localOnly ="true"
/>
< sessionState
mode ="InProc"
stateConnectionString ="tcpip=127.0.0.1:42424"
sqlConnectionString ="data source=127.0.0.1;user id=sa;password="
cookieless ="false"
timeout ="20"
/>
< globalization
requestEncoding ="utf-8"
responseEncoding ="utf-8"
/>
</ system.web >
< MCConfiguration >
< add key ="ChintMC.DataAccess.OleDbdataSource" value ="Provider=SQLOLEDB ;Server=192.168.207.181;Address=192.168.207.181,1433;Database=MC_DB;Uid=sa;Pwd=;" />
< add key ="ChintMC.DataAccess.ConnectionString" value ="server=LM;User ID=sa;Password=;database=MC_DB;Connection Reset=FALSE" />
</ MCConfiguration >
</ configuration >
麻烦指点一下吧,报的错是 字符串没有实例化