Como criar um .cs para um Generic Handler (.ashx)?
Da mesma forma que funciona com um arquivo .asmx, você pode separar o código do .ashx, gerando um arquivo .ashx e um .cs.
Se colocar o código do .ashx no code-behind, terá que colocar o arquivo .cs no App_Code.
A grande vantagem de separar um .ashx e colocar seu .cs no App_Code é que quando compilar o projeto, o .ashx também será compilado e ficará nas DLLs.
Handler.ashx
<%@ WebHandler Language="C#" CodeBehind="~/App_Code/Handler.cs" Class="Handler" %>
App_Code/Handler.cs
using System;
using System.Web;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable
{
get
{
return false;
}
}
}
Você pode fazer isso com o Global.asax também, so que nãoprecisará colocar seu .cs no App_Code. Veja o Exemplo
Global.asax
<%@ Application Codebehind="Global.asax.cs" Inherits="cbsa.Global" Language="C#" %>
Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace cbsa
{
public class Global : System.Web.HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
...
}
}
}