[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


Investing deeply in #Terraform on #Azure https://t.co/FkI5tIdCSM

August 18, 2017 09:27

Azure Service Bus .NET Standard Client Generally Available #dotnet https://t.co/OApdNciezA

August 18, 2017 09:25

If you are using @Azure #ContainerRegistry the team is looking for feedbacks: https://t.co/3worKrTubj cc @SteveLasker #Docker #Container

August 18, 2017 06:51

RT @nirmsk: Azure App Service Linux customer sotry: https://t.co/lNhu6Pq0OI "Using App Service on Linux instead of infrastructure services"

August 18, 2017 06:32

What is containerd ? https://t.co/nL6u5mVozD

August 17, 2017 12:21

New release of #Docker Enterprise Edition w/ both #Windows & #Linux containers support! #DockerEE https://t.co/N9e81qQgGj

August 17, 2017 11:44

#CloudCoverShow Episode 233: #Azure Event Grid with Bahram Banisadr https://t.co/2JNJ0eZdI6

August 17, 2017 11:35

#CloudCoverShow Episode 232: #Azure #Container Instances https://t.co/Opu3y1j8aD

August 17, 2017 11:11

Announcing #aspnet Core 2.0 #dotnetcore https://t.co/vNRZpGgAv8

August 17, 2017 11:06

#Microservices and #Docker containers: Architecture, Patterns and Development guidance https://t.co/wQN5KeAHqT

August 17, 2017 11:05

#Maven: Deploy #Java Web Apps to #Azure https://t.co/GFT4IDVssV

August 17, 2017 08:17

Announcing deploy to #Azure app service #Jenkins plugin and more https://t.co/CitUtOPmDp

August 17, 2017 08:15

Microsoft’s Lightweight Linux Runtime Environment Comes to Windows Server https://t.co/0k56clGMhK

August 17, 2017 07:50

With Event Grid, #Microsoft Provides the Missing Half of #Azure #Serverless Computing https://t.co/FoRuMpAZ8M

August 17, 2017 07:48

#Kubernetes Connector for #Azure Container Instances! https://t.co/SY7QwjnrlV

August 17, 2017 07:40