IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Equals dans objet remote: Identity/ServerIdentity cast exception


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Equals dans objet remote: Identity/ServerIdentity cast exception
    salut,

    j'ai une appli client/serveur qui fait du .Net Remoting. J'ai redéfini le Equals d'un objet SCProfileImpl à moi :
    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
    19
    20
    21
    22
    23
    24
    25
    public override bool Equals(System.Object obj)
    {
        SCProfileImpl myobj = obj as SCProfileImpl;
        // If parameter is null return false.
        if (myobj == null)
            return false;
        // If both are null, or both are same instance, return true.
        if (System.Object.ReferenceEquals(this, myobj))
            return true;
     
        bool result = false;
        try
        {
            string imei1 = this.GetIMEI();
            string imei2 = myobj.GetIMEI(); // exception is raised here
            string imsi1 = this.GetIMSI();
            string imsi2 = myobj.GetIMSI();
            result = (imei1 == imei2) && (imsi1 == imsi2);
        }
        catch (Exception e)
        {
            (...)
        }
        return result;
    }
    Dans mon client, lorsque je fais un appel à Array.IndexOf(desProfils, unProfil), où ces SCProfileImpl ont préalablement été retournés par le serveur, le IndexOf appelle en interne le SCProfileImpl.Equals, qui me lance une exception "Unable to cast object of type 'System.Runtime.Remoting.Identity' to type 'System.Runtime.Remoting.ServerIdentity'".
    Ca fait un moment que je cherche, je tourne en rond :-(
    Je précise juste que dans ce SCProfileImpl, j'ai surchargé le InitializeLifetimeService pour qu'il retourne null, et que l'exception ne se produit qu'après un arrêt/relancement du serveur, alors que le client ne s'est pas arrêté de tourner.

    Est-ce que quelqu'un a une idée de l'origine de ce problème ?
    Merci beaucoup !
    Thibaud

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    ok j'ai trouvé... mon Array.IndexOf(desProfils, unProfil) comparait "desProfils" obtenus par la nouvelle instance du serveur, alors que "unProfil" datait d'avant que le serveur ne se déconnecte puis se reconnecte ! Effectivement, pas très bon de garder des instances d'objet remote alors que le serveur s'est déconnecté. Donc maintenant je les mets à null lorsque je détecte la déconnexion. En espérant que ça serve à quelqu'un... en tout cas on peut pas dire que l'exception levée ait été très explicite !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Equals d'objets recursif
    Par Shiftane dans le forum Langage
    Réponses: 14
    Dernier message: 20/06/2006, 10h50
  2. Imposer une valeur dans une ligne "identity" d'une
    Par mibo94 dans le forum Access
    Réponses: 1
    Dernier message: 26/11/2005, 16h59
  3. Réponses: 9
    Dernier message: 19/10/2005, 04h35
  4. Renvoyer un type structuré dans objet OLE
    Par Bleuarff dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/05/2005, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo