Méthode Main, méthode ou classe prioritaire

Signaler
Messages postés
5
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
21 août 2017
-
Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
26 décembre 2011
-
Bonjour,

est-il possible que le point d'entrée d'un projet C# soit autre que la classe Main() ?
j'ai le code suivant :
public
class
Principale
{

///<summary>
/// Point d'entrée principal de l'application.
///</summary>
[
STAThread]

static
void Main()
{

MessageBox.show("Début Main");
try
{

ConfRem.Instance.LectureXMLRem(
null);

ConfRem.Instance.LectureXMLPref(
null);

SupervisionGlobal.Instance.AfficherIHM();
}

catch (
ValidException e)
{

MessageBox.Show(e.Message,e.Caption);
}

Application.Exit();
}

SupervisionGlobal est une classe singleton
idem pour ConfRem qui s'initialise grace à des fichiers de conf.
public

class
SupervisionGlobal
{

#region Singleton

private
static
readonly
SupervisionGlobal INSTANCE =
new
SupervisionGlobal(
ConfRem.Instance.NbrPort);

public
static
SupervisionGlobal Instance
{

get
{

return INSTANCE;
}
}

#endregion


private SupervisionGlobal(int pNombreVoie)
{
MessageBox.show("SupervisionGlobal"+pNombreVoie);

}

}

d'après le Main()
MessageBox.show("Début Main");
devrait s'éxécuter avant
MessageBox.show("SupervisionGlobal"+pNombreVoie);

et bien ce n'est pas le cas
c'est comme si la classe SupervisionGlobal était prioritaire au Main().
je ne comprends pas.
avez-vous une piste ?
Ah oui une piste pour vous aider,
en Débug sous Visual Studio 2005,
MessageBox.show("Début Main")
s'éxécute bien en premier.
Ce n'est qu'en Release. j'ai eu beau néttoyer, régéner la solution, je ne comprends pas.
Merci d'avance

1 réponse

Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
26 décembre 2011
3
Salut,



Je pense (mais je peux me tromper) que ce qui est statique est créé en premier, donc avant l'appel au main.



Lorsque il crée "


private
static
readonly
SupervisionGlobal INSTANCE" est que dans son contructeur tu as un


appel  à MessageBox.Show donc tu vois le message avant le lancement du Main.




A+