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

Framework .NET Discussion :

Erreur de cast avec System.IO.Stream


Sujet :

Framework .NET

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut Erreur de cast avec System.IO.Stream
    Bonjour,

    Je cherche à afficher une image dans une form contenant un picturebox , l'image à afficher est renvoyée sous forme de Stream via un webservice que j'ai crée.

    Voici le bout de code relatif à l'appel du webservice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Stream imageStream;
                MapPointService.Service1 mapservice = new PickMeUp.MapPointService.Service1();
                imageStream = mapservice.GetMapToSearchBeforeValidation(2);
                pictureBox2.Image = new System.Drawing.Bitmap(imageStream);
    Et voici ma web méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         [WebMethod]
            public Stream GetMapToSearchBeforeValidationPedestrian(int _idPedestrian)
            {
               // du code...
                Stream imageStream;
                // du code..
                imageStream = map.DisplayMapFromCoordinates(parametres..);
     
                return (imageStream);
            }
    L'erreur obtenue est :
    Error 1 Cannot implicitly convert type 'PickMeUp.MapPointService.Stream' to 'System.IO.Stream..
    Apparement il s'agit d'une erreur de cast , mais je n'y comprends rien !
    Je pensais que le fait qu'il y'ait Stream en fin de hiérarchie ne poserait aucun problème mais apparement , le fait qu'un Stream vienne d'une autre classe pose problème ?

    Comment régler ça ?

    Merci bcp

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    C'est quoi la hiérarchie des classe dont hérite le type "PickMeUp.MapPointService.Stream" ?
    Si il te dit ça c'est quand dans les classes parentes il n'y a pas Stream.
    A la limite tu pourrai donc créer ton propre "wrapper" de stream, un truc du genre :
    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
     
    public class StreamWrapper : Stream
    {
     PickMeUp.MapPointService.Stream internalStream;
     
     public StreamWrapper(PickMeUp.MapPointService.Stream internalStream)
     {
       this.internalStream = internalStream;
     }
     
     public bool CanWrite
     { 
       get { return internalStream.CanWrite; }
     }
     
    etc...

    EDIT:
    Après réflection ... j'y comprend rien
    L'erreur survient où exactement (quelle ligne ?) dans "public Stream GetMapToSearchBeforeValidationPedestrian", Stream c'est un System.IO.Stream ?

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Tout d'abord merci de bien vouloir te pencher sur mon problème
    Alors voici le bout de code qui contient l'erreur
    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
    namespace PickMeUp
    {
        public partial class StartSearch : Form
        {
            public StartSearch()
            {
     
                InitializeComponent();
                Stream imageStream;
                MapPointService.Service1 mapservice = new PickMeUp.MapPointService.Service1();
     ----->            imageStream = mapservice.GetMapToSearchBeforeValidationPedestrian(2);
               pictureBox2.Image = new System.Drawing.Bitmap(imageStream);
     
            }
    ...
       }
    l'erreur intervient au niveau de la ----->

    dans "public Stream GetMapToSearchBeforeValidationPedestrian", Stream c'est un System.IO.Stream ?
    Oui !

    Curieux

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Peut être que le compilateur a le choix entre plusieurs classes et qu'il choisis la mauvaise ....
    Essaye de remplacer toutes les références à Stream par System.IO.Stream (comme ça tu lui dit explicitement ce que tu veux).

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Oui , j'ai déjà essayé ta proposition mais j'obtiens toujours la même erreur

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut

    mais si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public System.IO.Stream GetMapToSearchBeforeValidationPedestrian(int _idPedestrian)
            {
               // du code...
                System.IO.Stream imageStream;
                // du code..
                imageStream = map.DisplayMapFromCoordinates(parametres..);
     
                return (imageStream);
            }
    d'où il sort le MapPointService.Stream ?

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Ben c'est justement la modification que j'ai apporté et il me sort très exactement la même erreur , j'ai bien pris le soin d'updater mon webservice en + !
    J'ai essayé de retourner un type PictureBox directement ( pour contourner le problème ) mais ce type ne peut pas voyager via un webservice apparrement (impossible d'ajouter : System.Windows.Forms ).

    une autre idée ?

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    je sèche

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Voici un élément qui pourra peut être t'aider à m'aider

    public System.IO.Stream maFonction()
    {

    // code

    System.IO.Stream imageStream;
    imageStream = new System.IO.MemoryStream(images[0].MimeData.Bits);

    return imageStream;
    }

    Ce bout de code représente en fait la fonction qu'appelle la web méthode pour obtenir l'objet stream en question , je suspecte la ligne en gras ( peut être un cast entre Stream et MemoryStream) d'être à l'origine de ce problème ??

    Merci

  10. #10
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Non, un MemoryStream hérite de Stream donc il peut être casté implicitement en Stream...

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    J'ai finalement pu contourné le problème sans pour autant résoudre ça..

  12. #12
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut

    PC 1 - 0 Humains

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

Discussions similaires

  1. [Débutant] Probleme de cast avec system.dbnull
    Par mattmax dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/08/2011, 17h21
  2. ASP.NET C# 1.1 erreur de cast avec CDOEXM
    Par Seth_75 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/02/2009, 10h45
  3. message d'erreur avec "system.data" dans VS2005
    Par mouchkar dans le forum VB.NET
    Réponses: 4
    Dernier message: 03/03/2008, 12h34
  4. Erreur avec system.in.readln
    Par McCoy32 dans le forum Langage
    Réponses: 4
    Dernier message: 15/10/2007, 17h49
  5. Erreur fatale : compilation avec System.RTLVersion
    Par Beauserge dans le forum Delphi
    Réponses: 2
    Dernier message: 01/11/2006, 00h47

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