[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


#DevOps mobile demonstration using #Xamarin Test Cloud and @VisualStudio Team Services! #msdevcon https://t.co/unWRCWfitR

May 25, 2016 07:56

#OSS and #Linux are first-class citizen in #Microsoft @Azure! #msdevcon https://t.co/VU8k0OK3ph

May 25, 2016 07:50

Demonstration of @mesosphere DCOS running on top of @Azure #ContainerServices. #msdevcon https://t.co/fd7IEfaxlv

May 25, 2016 07:44

.@Azure #ContainerServices integrates w/ common open source solutions like #Docker and #ApacheMesos ! #msdevcon https://t.co/vE3mg7Ruav

May 25, 2016 07:37

#Microsoft @Azure is also about hybride #Cloud w/ #AzureStack #msdevcon @jlzander https://t.co/xzdvklvg7b

May 25, 2016 07:23

All companies are becoming software companies! @jlzander on stage #msdevcon https://t.co/OKjftZkxK6

May 25, 2016 07:14

DevCon keynote is about to start! #msdevcon https://t.co/klD70fJ3Bs

May 25, 2016 07:02

Ready with @meulta for our #Office365 for developer keynote and @VorlonJS #DevOps session at DevCon Russia this week ! #msdevcon

May 23, 2016 20:16

Pourquoi le #Paas est l'avenir de l'application d'entreprise https://t.co/qSrHAYusHB #Azure #Cloud #DevOps

May 23, 2016 13:34

New @cloudcovershow episode: Microsoft #Bot Framework https://t.co/PkdC01KOaK

May 21, 2016 06:32

Rendez-vous le 29 Juin à Paris @ContainerDay16 pour parler des conteneurs dans #Azure et sous #Windows !

May 20, 2016 16:12

RT @msdev: Got Questions? The @Azure compute engineering team will be ready to answer on @reddit #AMA https://t.co/qw059Wfbxf https://t.co

May 18, 2016 19:42

RT @jenkinsci: Partnering with Microsoft to run Jenkins #infrastructure on #Azure https://t.co/lZu6j4htwn #infra

May 18, 2016 18:03

Microsoft’s #Bot Framework gets #Kik integration - https://t.co/X5hT3JVJUs

May 18, 2016 17:54