Méthode Main, méthode ou classe prioritaire

DaniMelo59 Messages postés 5 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 21 août 2017 - 28 oct. 2008 à 15:04
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 - 28 oct. 2008 à 19:19
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

xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
28 oct. 2008 à 19:19
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+
0
Rejoignez-nous