软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > ASP.NET > Asp.Net 自定义Section Handler

Asp.Net 自定义Section Handler

一、关于Asp.Net的配置

web.config包含了Asp.Net程序的各种配置。web.config包含两部分内容:Section Handler和Section Settings。或许您要说在web.config中还有appsettings,connectionStrings等并不属于这两部分啊。其实不然,当您打开machine.config就一目了然了。

<configSections>
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false"/>
...

可见在web.config中的appSettings和connectionStrings其实是这两个section的settings。

二、自定义配置

有这样一个场景,系统要为用户提供友好提示信息,如简单地说您好。对中文用户您好十分恰当,但对英文用户就不合适了。因此,我们可以这样设计: 

public interface IHelloGenerator
{
string GenerateHello();
}
public class CnHelloGenerator : IHelloGenerator
{
#region IHelloGenerator Members

public string GenerateHello()
{
return "您好";
}

#endregion
}
public class EnHelloGenerator : IHelloGenerator
{
#region IHelloGenerator Members

public string GenerateHello()
{
return "Hello";
}

#endregion
}
定义一个产生问候语的接口,再为不同的语言定义一个实现该接口的类以产生特定的问候语。在使用时,可以这样:

class App
{
static void Main()
{
var helloGenerator = CreateHelloGenerator("cn");

Console.WriteLine( helloGenerator.GenerateHello());
}

private static IHelloGenerator CreateHelloGenerator(string lang)
{
var result = default(IHelloGenerator);
switch (lang)
{
case "en":
return new EnHelloGenerator();
case "cn":
return new CnHelloGenerator();
}

return result;
}
}

相关阅读
栏目导航
推荐软件