[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


#Docker Container Images are now out for #WindowsServer version 1709! https://t.co/T6J0w1kkOW

October 20, 2017 16:42

Getting started with #Traefik and #Kubernetes using #Azure Container Service https://t.co/eW8g370GiS

October 20, 2017 16:40

What’s new in the #Windows 10 Fall Creators Update https://t.co/zkSIsl8anJ

October 17, 2017 15:36

#DockerCon: #Kubernetes orchestration also comes with the latest beta of #Docker for Mac and Windows https://t.co/JYGqa6RTka

October 17, 2017 09:13

RT @sferquel: Docker supports the real #kubernetes orchestrator. So it does not lock you in. Kubectl with docker ee ? Yes we can ! #DockerC

October 17, 2017 09:11

#DockerCon: @Docker Platform and #Moby Project add #Kubernetes https://t.co/LnHeUxzApB

October 17, 2017 09:07

Whoa! Big announcement today at #DockerCon: Extending #Docker Enterprise Edition to Support #Kubernetes https://t.co/lgf2jec1Bs

October 17, 2017 09:04

#Nodejs dev? Learn how to host your apps on #Azure with @John_Papa https://t.co/Z0i7PGcxQc

October 17, 2017 06:28

Cloud Service Map for AWS and Azure Available Now https://t.co/5KZmItRpbI

October 17, 2017 06:19

Check this video to discover how to use #Jenkins Plugins for #Kubernetes w/ @Azure #ContainerService https://t.co/kkcTu5K9li

October 17, 2017 06:06

Edge Device Discovery - an Unfinished Project https://t.co/CyjjjHXscL

October 17, 2017 05:57

Zip Push Deployment for #Azure Web Apps, #Functions and #WebJobs https://t.co/SDurPqdK8P

October 17, 2017 05:41

Migration tips from IaaS to Web App for #Containers on @Azure https://t.co/T03FXCIqIr

October 16, 2017 08:14

Microsoft Cognitive Services - How Content Moderator helps to boost online safety https://t.co/6VtyV28zhe

October 16, 2017 08:13

@mandinette77 Il a plutôt parlé d'info sorties de leurs contexte avec comme exemple Twitter. Ce tweet en est une belle illustration btw :-)

October 15, 2017 22:20