Если у вас есть элемент в наборе инструментов 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
}