HttpHandler innerhalb eines Controls
Ich dachte lange Zeit das dies nicht möglich sei, jedoch ist es fast zu einfach um wahr zu sein :-)
Okay zugegeben, es müssen schon spezielle Anwendungsfälle sein, um einen HttpHandler innerhalb eines Controls zu benötigen.
Es braucht dazu zwei Schritte, um ans Ziel zu gelangen.
- Eine Klasse in einem Control Projekt die die Schnittstelle IHttpHandler implementiert
- Einen Eintrag in der web.config, der auf diesen Handler zeigt
Wie ihr evt. schon vermutet, gibt es auch eine gewisse Einschränkung.
Es braucht einen Eintrag in der web.config, um den Handler überhaupt irgendwie anzusprechen.
Beim Attribut "type" ist es wichtig, den kompletten Namen inklusive des Namespaces anzugeben.
Bei einem normalen *.ashx Handler ist das nicht unbedingt der Fall, dieser kann auch über seinen physischen Namen angesprochen werden.
Ein Eintrag in der web.config kann bspw. so aussehen:
<system.web>
<httpHandlers>
<add verb="GET" path="MeinHandler.axd" type="Firma.Controls.MeinHandler"/>
</httpHandlers>
[...]
Wichtig ist hierbei, das bei einer Angabe eines kompletten Dateinamens, dieser jeweils überall im gesamten Projekt angesprochen werden kann.
*.axd ist natürlich nicht von Nöten. Ich habe diese Endung in Anlehnung an "WebResource.axd" genommen.