Bonjour,

J'ai un bug un peu étrange qui est survenu d'un seul coup après une compilation. Mais je n'ai rien changé au code. J'utilise une classe statique (Commun) dans laquelle j'ai des fonctions que j'utilise entre toutes mes différentes classes. Voici le message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
L'exception System.TypeInitializationException n'a pas été gérée
  Message="Une exception a été levée par l'initialiseur de type pour 'Commun'."
  Source="Dlab 2008"
  TypeName="Commun"
  StackTrace:
       à Commun.StartService(String nom)
       à Dlab.Formulaires.MainMenu..ctor() dans D:\Dlab2005\Dlab\Dlab\Formulaires\MainMenu.cs:ligne 85
       à Dlab.Classes.Program.Main() dans D:\Dlab2005\Dlab\Dlab\Classes\Program.cs:ligne 17
       à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
       à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
       à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       à System.Threading.ThreadHelper.ThreadStart()
Voici le contexte d'utilisation et là où ça plante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Commun.StartService("SQL Server (SQLEXPRESS)");
Voici ensuite la méthode statique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
/// <summary>
  /// Démarre un service.
  /// </summary>
  static public void StartService(string nom)
  {
    // on lance le service "nom" s'il n'est pas déjà lancé
    System.ServiceProcess.ServiceController srvController = new System.ServiceProcess.ServiceController(nom);
 
    if (srvController.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)    
      srvController.Start();    
  }
J'ai l'impression que c'est comme si le "type" d'objet "Commun" n'existait pas au moment de son utilisation...

Merci