我按照Duwamish7的DuwamishConfiguration和ApplicationConfiguration自己写了个一样的配置类,怎么不读不出配置文件(web.config)里面的东西啊,web.config和我自己写的那个类是照着Duwamish7写的继承了IConfigurationSectionHandler接口
类如下:
public
class
MCConfiguration : IConfigurationSectionHandler
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
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)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
NameValueCollection settings;
try
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
NameValueSectionHandler baseHandler = new NameValueSectionHandler();
settings = (NameValueCollection)baseHandler.Create(parent, configContext, section);
}
catch
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
settings = null;
}
if ( settings == null )
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
dbConnectionString = DATAACCESS_CONNECTIONSTRING_DEFAULT;
dbOleDbdataSource = DATAACCESS_OLEDBDATASOURCE_DEFAULT;
}
else
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
dbConnectionString = ReadSetting(settings, DATAACCESS_CONNECTIONSTRING, DATAACCESS_CONNECTIONSTRING_DEFAULT);
dbOleDbdataSource = ReadSetting(settings, DATAACCESS_OLEDBDATASOURCE, DATAACCESS_OLEDBDATASOURCE_DEFAULT);
}
return settings;
}
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
public static String ConnectionString
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return dbConnectionString;
}
}
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
public static String OleDbdataSource
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return dbOleDbdataSource;
}
}
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
ReadingSettings#region ReadingSettings
public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (String)setting;
}
catch
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return defaultValue;
}
}
public static bool ReadSetting(NameValueCollection settings, String key, bool defaultValue)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToBoolean((String)setting);
}
catch
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return defaultValue;
}
}
public static int ReadSetting(NameValueCollection settings, String key, int defaultValue)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Object setting = settings[key];
return (setting == null) ? defaultValue : Convert.ToInt32((String)setting);
}
catch
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return defaultValue;
}
}
public static TraceLevel ReadSetting(NameValueCollection settings, String key, TraceLevel defaultValue)
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Object setting = settings[key];
return (setting == null) ? defaultValue : (TraceLevel)Convert.ToInt32((String)setting);
}
catch
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return defaultValue;
}
}
#endregion
web.config如下:
<?
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"
/>
![None.gif](/Images/OutliningIndicators/None.gif)
<
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"
/>
![None.gif](/Images/OutliningIndicators/None.gif)
<
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
>
![None.gif](/Images/OutliningIndicators/None.gif)
</
configuration
>
麻烦指点一下吧,报的错是 字符串没有实例化