Probleme transtypage

cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009 - 17 oct. 2007 à 17:35
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009 - 18 oct. 2007 à 17:21
Bonjour,
J'ai un probleme que je n'arrive pas a resoudre sur un stranstypage. En fait je recupere un Objet via un System.IAsyncResult grace a l'attribut AsyncState. Cet objet est cense contenir une valuer correspondante a une classe que j'ai cree et qui ne contient que des String et des int, donc serialisable. Or quand j'essaye de transtyper l'objet AsyncState en ma classe il me dit qu'il ne peut pas transtyper, lors de l'execution car sa compile.:
Impossible d'effectuer un cast d'un objet de type 'System.Object' en type 'ServerInfo'.

Alors que je fais juste un:

ServerInfo info = ((ServerInfo)state.AsyncState);

Merci de votre aide parceque la je seche!!

5 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
17 oct. 2007 à 18:03
Alors attention, la sérialisation et le transtypage, ça n'a rien à voir ensemble hein, pas d'amalgames.
Quel objet passes-tu en paramètre lors de l'appel de la fonction asynchrone ? Est-il bien du type ServerInfo ?
Sinon essaie de mettre un point d'arrêt à cet endroit, et regarde le type de state.AsyncState.
<hr size="2" width="100%" />Julien.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
17 oct. 2007 à 19:41
le plus propre est de faire :

ServerInfo info = state.AsyncState as ServerInfo;
if (info != null) {
   // ...
}

mais en debug, tu peux voir le type de AsyncState

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
18 oct. 2007 à 12:55
Bon j'ai essaye avec le as ServerInfo et ca marche mieux, enfin le stranstypage est accepte mais apres mon info est null. Du coup ca veut dire que mon appelle asynchone ne marche pas bien.
Voila ce que je fais:

BegingetServerInfo(null, new object());

public System.IAsyncResult BegingetServerInfo(System.AsyncCallback callback, object asyncState)
    {
        return this.BeginInvoke("getServerInfo", new object[0], callback, asyncState);
    }

Du coup je pense que c'est le AsynCallBack a null le probleme mais je ne sais pas trop quoi mettr d'autre!!

Merci
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
18 oct. 2007 à 16:03
Attends qu'essaie-tu de faire avec ton ServerInfo ?

En effet le problème est que AsyncCallBack est null. Tu voudrais que ton objet tombe du ciel ?

Tu comprends bien l'utilité de state.AsyncState ? Tiens lis ceci :

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=774237&SiteID=1

<hr size="2" width="100%" />Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
18 oct. 2007 à 17:21
Bah en fait j'ai reflechi un peu plus et je me susi rendu compte de mon erreur. Du coup j'ai cree une fonction de type
void function(IAsyncResult result) et dedans je fais un result.AsyncState as ServerInfo et mon serverInfo est toujours null.
Du coup je ne sais pas si je l'utilise bien!!
0
Rejoignez-nous