如何修改web.使用自定义服务器控件时自动配置
本文关键字:服务器控件 自定义 配置 何修改 修改 web | 更新日期: 2023-09-27 18:10:16
我正在尝试使用VS2008在c#中创建自定义服务器控件。我正在使用这个自定义控件,它实际上需要我修改web.config
文件,以便在将该控件添加到客户端页面时添加HttpHandler
。
我的问题很简单:
需要添加什么到我的自定义控件代码中,以便它在web.config
中注册所需的HttpHandler
信息?一些本地控件已经做到了这一点。例如,AJAX Toolkit
将修改web.config。我怎样才能对我的控件做类似的事情呢?
如果您在Visual Studio的工具箱中有一个项目,您可以在开发人员将该控件拖放到网页上时执行此操作。您需要用System.ComponentModel.DesignerAttribute
修饰控件,以将其引用到System.Web.UI.Design.ControlDesigner
的子类(您创建的)。在本课程中,你可以重写Initialize
在这里,你可以通过System.Web.UI.Design.IWebApplication
获得配置,像这样:
var service = this.GetService(typeof(System.Web.UI.Design.IWebApplication)) as IWebApplication;
if (service != null)
{
var configuration = service.OpenWebConfiguration(false);
if (configuration != null)
{
var section = configuration.GetSection("system.web/httpHandlers") as HttpHandlersSection;
if (section != null)
{
var httpHandlerAction = new HttpHandlerAction("MyAwesomeHandler.axd", typeof(MyAwesomeHandler).AssemblyQualifiedName, "GET,HEAD", false);
section.Handlers.Add(httpHandlerAction);
configuration.Save();
}
else
{
// no system.web/httpHandlers section found... deal with it
}
}
else
{
// no web config found...
}
}
else
{
// Couldn't get IWebApplication service
}
查看在。net中以编程方式添加HttpHandler的任何方法?线程,它描述如何在运行时完成类似的任务。