[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


How Microsoft’s Brendan Burns is trying to make cloud-native app deployment as easy as coding https://t.co/kPa2mzqE9V

December 18, 2017 07:44

RT @brendandburns: Really great overview of @Azure container service! https://t.co/7fk42Ud7m5

December 14, 2017 17:40

#KubeCon 2017 Demo - Istio and Brigade CI/CD https://t.co/60uaK82fIJ

December 14, 2017 08:18

Azure #Functions CI/CD pipeline for #Nodejs using #VSTS https://t.co/3UElDsDsDL

December 14, 2017 08:13

AKS cluster upgrades and managed #Kubernetes in #Azure https://t.co/b0naeEUwl1

December 12, 2017 16:01

Microsoft Azure <3 France ! https://t.co/w4Ak8f4QWN

December 12, 2017 08:09

The future is here! The #Quantum Development Kit has been released :) https://t.co/8mSieAEbCr

December 12, 2017 07:16

A tour of #containerd 1.0 https://t.co/27jtxIu17d

December 12, 2017 07:10

Last week in Azure: OSBA, DevOps and Kubernetes, VM sizes, and more https://t.co/vq6jtWLYTq

December 12, 2017 07:08

RT @BradSmi: We believe #AI is a game changer in creating solutions to protect the planet. That’s why we’re expanding #AIforEarth. #OnePlan

December 11, 2017 13:52

WSL Interoperability with #Docker https://t.co/xtiUafCPyq

December 11, 2017 11:58

RT @jpetazzo: If you are using @docker (or are planning to) to help you in your DevOps initiatives, you might want to read this: https://t.…

December 09, 2017 12:20

RT @benjguin: Free eBook – The Developer’s Guide to Microsoft Azure now available https://t.co/z9VeGYRDQy https://t.co/V0ozQPJllh

December 08, 2017 08:08

Check out the new #Azure Application Architecture Guide https://t.co/M3wIQfkRhi

December 08, 2017 07:53

What’s brewing in Visual Studio Team Services: December 2017 Digest https://t.co/jL8yNATyJR

December 08, 2017 07:51