[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


RT @psentenac: Les prises de décisions strat. #cloud devraient également considérer ce rapport PaaS qui ne liste même pas AWS... 2/2 http:/…

May 23, 2015 17:16

#Microsoft #Edge Performs Better than #Chrome and #Firefox - http://t.co/kWnMrB0dju

May 23, 2015 13:54

#Revolution #R Open 3.2.0 now available for download - http://t.co/4GdlaE3yQb

May 23, 2015 11:37

Awesome talk about the history of our world http://t.co/CkWhuARbtq #TED #BigHistoryProject

May 23, 2015 09:53

A taste of #DocumentDB through our Query Playground - http://t.co/xmhSLDMQ1N #Azure #Cloud #NoSQL

May 23, 2015 08:01

MindMagnet: Using #Azure #IaaS + #OpenSource Stack For Low Initial Investment http://t.co/INhknWbcqF

May 22, 2015 13:54

Good News ! #Windows10 Allows Users To Connect To Both Personal And Work Accounts In The Same Login Session - http://t.co/ebd83W4iKz

May 22, 2015 12:49

#DevOps culture needs to be created: http://t.co/HayXp5gEAp

May 22, 2015 11:37

DNVM, DNX, and DNU - Understanding the #aspnet5 Runtime Options: http://t.co/LgjgqlJoLM

May 22, 2015 09:21

#Microsoft + #OpenSource “how to”: Using bootstrap-vz to create an #Azure-ready #Debian 8 image: http://t.co/CajSFRp16l

May 22, 2015 08:01

RT @pierlag: #vorlonjs in action with @meulta @deltakosh @davrous #mstechdays - (30 live connected clients) http://t.co/zSNXM62Q4d

May 22, 2015 07:13

Gartner shows two-horse race in #IaaS cloud: #AWS and #Microsoft #Azure - http://t.co/IeqDw37ExL

May 21, 2015 13:54