[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


What are #containers and #microservices? https://t.co/C8lpmyBrGZ

February 13, 2016 08:29

What's new in @Docker 1.10 ? https://t.co/SHWAngSoZn

February 13, 2016 08:27

You can now create #SQLServer Express virtual machine from the #Azure Gallery https://t.co/BJFz50elqH

February 13, 2016 08:25

Don't miss the #DevOps Fundamentals series on @ch9 https://t.co/IaSCSIW0nu

February 13, 2016 08:11

Use #SonarQube quality gates to control your #VisualStudio #TeamServices https://t.co/JyEUvRoBgE

February 12, 2016 10:37

Monitor #TeamServices web extensions with #VisualStudio #ApplicationInsights https://t.co/FUWIVwa6DV

February 12, 2016 09:21

@twasyl @VorlonJS mais carrément, il faut que tu testes ! Tout est là : https://t.co/o7VWZLVUKv ;-)

February 12, 2016 08:41

Announcing new Log Analytics (OMS) resource for #Azure VMs https://t.co/OrhOQ4EsTH

February 12, 2016 08:01

@achingono release management for visual studio allows to deploy on prem, see https://t.co/bv5Ipgvj9w

February 11, 2016 18:44

@achingono or you can use Release Management for Visual Studio: https://t.co/3qzBA56CIa 2/2

February 11, 2016 17:05

@achingono release management service is also available in TFS2015 update 2 : https://t.co/6QIRPtPnZQ 1/2

February 11, 2016 17:04

RT @PierrickBlons: Je recherche des développeurs passionnés autour des technologies Microsoft sur Rouen. Please RT #jobs #rouen #Microsoft

February 11, 2016 14:53

#Docker enables communication between development and IT operations https://t.co/1lAvZMJG2U #DevOps

February 11, 2016 14:44

Porting to .NET Core https://t.co/M5wH4LZUkL

February 11, 2016 09:21

Get your code hosted for free in VSTS https://t.co/JWt8YxoZWj

February 11, 2016 08:01