[ASPNET] Exécutez du code au pré-démarrage d’une application

April 10, 2013 -

Depuis ASP.NET 4, il existe une fonctionnalité assez intéressante : la possibilité d’exécuter du code au chargement de l’app domain dans lequel s’exécute votre application, c’est à dire avant même que le code de votre application soit chargé.

On parle du “pré-démarrage” de l’application. Ce mécanisme est très simple à mettre en place et peut être réalisé dans n’importe quel assembly chargé dans l’app domain de votre application :

  • Création d’une classe statique PreApplicationStart (par exemple)
  • Création d’une méthode statique OnStart (par exemple)
  • Ajout d’un attribut d’assembly pour indiquer l’emplacement de cette classe

Cela peut être très utile, notamment pour enregistrer des modules http, par exemple !

Vous obtenez donc un code de ce genre là :

public static class PreApplicationStart
{
    public static void OnStart()
    {
        //code de pré-démarrage
    }
}

Ensuite, il suffit de pointer cette classe depuis le fichier Assembly.cs du projet dans lequel elle est définie :

[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "OnStart")]

Il ne reste qu’à référencer la librairie dans le projet web, et la méthode OnStart sera automatiquement appelée lors du pré-démarrage.

Enjoy Winking smile

Julien

Comments

Share

Tags


Twitter


Cool !! #ASPNET (vNext) Work in Progress - Exploring TagHelpers: http://t.co/yKyqHsAm2U

November 20, 2014 17:28

Working with Dates in #Azure #DocumentDB: http://t.co/al2i9RJK7e

November 20, 2014 16:16

#Azure #MediaServices : use AES encryption with your live streams - http://t.co/XRzt0Kvo3y

November 20, 2014 14:17

#Azure #Storage Performance Checklist: http://t.co/C5HhGIcHVE

November 20, 2014 13:01

You can now use a #Docker client from your #Windows machines: http://t.co/SrIjKmNtVK

November 20, 2014 10:54

#Azure #MediaServices : enable dynamic #PlayReady content protection on your assets: http://t.co/MQBm4alizM

November 20, 2014 10:05

Formatters in #ASPNET #MVC 6 : http://t.co/vN1Etl2hB8 #vnext

November 20, 2014 09:37

All you need to know about #Azure #Website deployment slots ! http://t.co/15bmWlt1c5

November 20, 2014 08:21

#Cloud : pourquoi #Docker peut tout changer: http://t.co/HMVij02iUX

November 20, 2014 08:01

#Azure #MediaServices : état des lieux des fonctionnalités : http://t.co/ZZ4e9FZmIN

November 18, 2014 10:54

Monitoring #Azure Services and External Systems with Azure #Automation - http://t.co/jpcc3Eengy

November 18, 2014 09:37

An End-to-End Prototype of PlayReady Protection with ACS Authentication and ACS Token Authorization - http://t.co/WXyQIixyku

November 18, 2014 08:21

Skipping the Home Realm Discovery Page in #Azure AD - http://t.co/Phd3VyADlJ

November 18, 2014 08:01

#Azure #DocumentDB – Bulk Add Documents and Query Syntax Highlighting : http://t.co/ST9p6ymngL

November 17, 2014 14:17

#Azure #Websites Authentication / Authorization (Preview Release) : http://t.co/BR374GYMgs

November 17, 2014 13:01