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

C# Discussion :

Désérialisation d'un flux.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut Désérialisation d'un flux.
    Salut à tous.
    je rencontre un problème lors de la désérialisation d'un flux.

    Mon code :
    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
     
            public HttpWebRequest Request;
            public X509Certificate Certif;
            public HttpWebResponse myResponse;
            public Stream stream;
     
            Request = (HttpWebRequest)WebRequest.Create("http://");
    //la requete http est "en temps normal" une vraie requête http.
            Certif = X509Certificate.CreateFromCertFile(cert);
    //la variable cert est renseigné autre part , pas d'inquiétude.
            Request.ClientCertificates.Add(Certif);
            myResponse = (HttpWebResponse)Request.GetResponse();
     
            stream = myResponse.GetResponseStream();
            avocat p_avocat = new avocat();
            XmlSerializer serializer = new XmlSerializer(typeof(avocat));
            TextReader Text = new StreamReader(stream);
             p_avocat = (avocat)serializer.Deserialize(Text);
    J'obtient l'erreur suivante :
    L'exception System.ArgumentException n'a pas été gérée par le code utilisateur
    Message : Le flux ne peut pas être lu.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Tout d'abord, merci d'utiliser les balises CODE.

    Sinon,difficile à dire comme cela.

    Peut être checker la propriétés HaveResponse avant d'appeler GetResponse.

    Quelle ligne lève l'exception ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Tout d'abord, merci d'utiliser les balises CODE.

    Sinon,difficile à dire comme cela.

    Peut être checker la propriétés HaveResponse avant d'appeler GetResponse.

    Quelle ligne lève l'exception ?
    C'est la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextReader Text = new StreamReader(stream);
    Sinon pour tester le HaveResponse , c'est "inutile" dans ce cas parce qu'en fait je suis sur d'avoir une réponse.
    En effet si j'utilise XPATH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
             XPathDocument doc = new XPathDocument(stream);
               XPathNavigator Navigator = doc.CreateNavigator();
    J'ai bien le retour de mon flux. Ce que je ne comprends pas c'est pourquoi il est illisible par le textreader et pas par le XPath.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Accessoirement, cette ligne ne sert rigoureusement à rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     avocat p_avocat = new avocat();
    Mais sinon, non je ne vois pas.

    Il n'y a pas d'InnerException ? c'est bizarre.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Accessoirement, cette ligne ne sert rigoureusement à rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     avocat p_avocat = new avocat();
    Mais sinon, non je ne vois pas.

    Il n'y a pas d'InnerException ? c'est bizarre.
    InnerException null.
    Je comprends parce que j'utilise déjà la désérialisation sur un fichier XML et ça fonctionne sans problème et la depuis le flux ça foire.
    A tout les coups c'est un petit détail qui m'échappe.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Citation Envoyé par l3st4t Voir le message
    InnerException null.
    Je comprends parce que j'utilise déjà la désérialisation sur un fichier XML et ça fonctionne sans problème et la depuis le flux ça foire.
    A tout les coups c'est un petit détail qui m'échappe.
    J'ai réussit à choper un "Ce flux ne prend pas en charge les opérations de recherche" dans les propriété lenght.
    Est-ce la cause ?
    [Edit] Bon apparement non .
    Source :
    That is a false lead. Ignore that. You are only seeing that because of the debugger / visualiser trying to show you all the properties (some of which don't make sense for a stream of unknown length).


    -------------


    Bon bah la seule solution que j'ai trouvé c'est d'enregistrer mon flux dans un fichier XMl que je déserialise ensuite. : /

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

Discussions similaires

  1. [Servlet][Deb]envoyer image gif sur le flux http
    Par ptitBoutchou dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 09/04/2004, 10h12
  2. Acquerir un flux audio
    Par The Cyber Lewis dans le forum DirectX
    Réponses: 1
    Dernier message: 05/04/2004, 14h13
  3. Rediriger un flux de données sous linux
    Par Nicaisse dans le forum POSIX
    Réponses: 7
    Dernier message: 01/07/2003, 16h04
  4. Copie d'un flux dans un autre
    Par Morvan Mikael dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2003, 09h40
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

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