Liaisoin avec un évènement

Signaler
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005
-
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005
-
Salut

J'ai inclus un composant (dll c#) dans une appli ASP.NET (en c#) et j' ai récupéré l'évènement associé à ce composant en ajoutant la gestion de mon évènement avec :
MonObject.MonEvent +=
new MonObject.MonObjectEvents_MonEvent EventHandler(MonObject_MonEvent );

Mon problème est qu'il y passe bien 1 ou 2 fois mais c tout alors qu'il devrait y passait bcp plus, on dirait qu'il arrète le traitement ...

Pour vérifier le fonction de mon composant, j'ai refais le même projet qu'en c# en utilisant le même code et là ca marche bien.

Est ce que j'aurai pas oublié de faire qch ?

10 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Dans ton autre projet qui marche pas, il y a quoi de plus que l'autre ? il y a un autre truc qui pourrait faire planter ?



car avec ce que tu nous dit on peut pas beaucoup t'aider

<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Le code c# est identique dans les 2 projets c pour ca que je comprends pas pq ca marche dans l'un et pas dans celui en asp.net ...

J'appelle une fonction du composant qui va appeler l'évènement pour me dire où il en est dans sa gestion. Dans le projet asp il y passe 2 fois et plus rien, dans l'autre il y passe 5 fois (ce qui est le fonctionnement normal)

Est ce que le fait que ce soit un projet web fait que l'appel des évènements est géré différement?

c plus clair là ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Lol, c'est deux projets strictement identique, et l'un fonctionne l'autre non ?



Dans un cas pareil, je me dit que le premier a du avoir une modif
quelque part et que ca plante, alors je continuerais à developper sur
l'autre



Au pire si t'as envie de t'amuser à trouver ou ca foire, compare tout
entre les deux, regarde la taille des fichiers, va faire un tour dans
IIS etc... si t'as pas de difference, fais un mix des fichiers, et
regarde quand ca plante etc... mais si c'est exactement les mêmes
projet laisse tomber l'autre



Par contre s'il n'y a pas la meme chose dans les projets, une autre
chose completement opposé peut faire foiré, fais un coup de debug, et
regarde ce qu'il se passe l'etat des variables, si t'as des variables
sessions etc...

t'appelles quoi par êtrea appelé 5 fois ? t'as un peu plus de code à montrer ?


<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Ben c le même code c# mais c pas le même type de projet.
Le 1° j'ai fait "projet c#/Application Web ASP.NET" et l'autre "projet c#/Application Windows". C'est pour ca que je peux pas remplacer celui qui marche pas par celui qui marche car au final il doit être en intranet.

En gros j'ai (là c le ASP) :


private
void Page_Load(
object sender, System.EventArgs e)


{obj =
new monObject();


obj .Gestion +=
new _ITerminalObjectEvents_Gestion EventHandler(obj _Gestion );}


private
void BT_Traitement_Click(
object sender, System.EventArgs e)


{traitement();}

public
void obj _Gestion (
int val1,
int val2){



switch(val1)


{
case X :


//traitement associé à val1

break;



etc ...


}
}

Quand je clic sur le bouton et que j'appèle la fonction traitement mon object fait sa bidoule de son coté et appèle l'évènement obj_Gestion avec la val1 qui indique ce qu'il vient de finir.
En théorie il doit faire 5 traitements donc je devrait passer 5 fois dans l'évènement obj_Gestion. C'est là que ca marche pas top.
Sur le projet entièrement en c# il y passe bien 5 fois et sur celui en ASP.Net il n'y passe que 2 fois
Pour l'instant j'ai que ca ds mon coté (pas de variables de sessions etc)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Oula, attention au piege, asp.net n'est pas du tout pareil que faire des applications winforms.



J'ai pas compris ce que t'essaye de faire

mais la gestion d'evenements n'est pas du tout la meme en asp.net qu'en
application winforms, en web tu travails en mode deconnecté, à chaque
fois que tu fais une requete, le serveur te connait plus, tu refais une
requete tu repasse obligatoirement par le page_load.



A mon avis, ton problème vient de la, essaye d'abord de comprendre
comment se passe les evenements en asp.net mais surtout oublie ce que
tu sais des applications win c'est un enorme piège !!!



Ce qui est important de comprendre, c'est que a chaque requete la page
execute le page_load, meme sur un clique du bouton, puis ensuite passe
aux events des controles, et entre chaque requete tes variables sont
perdus etc...

<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
Ca serait cool d'avoir le code complet...c'est peut-être ce que tu fais dans un des traitement qui est en cause... et puis:
public
void obj _Gestion (
int val1,
int val2){
ce serai pas mieux

private void obj _Gestion (
int val1,
int val2){

??

yopyop
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Ben le code je l'ai mis au dessus y a rien de plus.
private ou public ca change rien ici ...

Bon j'ai rajouté une variable de session pour garder le même oblect en mémoire mais bon ca change pas grand chose au fait que je passe pas dans la fonction obj _Gestion .

J'ai aps trouvé un tutorial explicant bien la gestion des évènements. Vous en connaissez?
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
pas évident sans avoir le code du delegate que tu utilises...
mais les examples ci-dessus devraient t'aider..

yopyop
Messages postés
18
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Ok merci je vais jeter un coup d'oeil ;)