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

VB.NET Discussion :

déserialisation soap et class exposé à COM


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut déserialisation soap et class exposé à COM
    bonjour à tous,

    bon voila, je sèche...
    Après plusieurs jour de recherche et d'essai infructueux, j'ai besoin de vos lumières

    Ce que je veux faire : une class exposée à COM qui permet, en outre, de sauvegarder son contenu dans un fichier xml (fonction .SaveAs) ou de recharger un objet déjà sauvagarder (fonction .LoadFromFile).

    -> Côté sauvegarde : no problemo, la sérialisation saop fonctionne à merveille et j'ai un joli fichier xml avec les membres de la class.
    -> Coté chargement :
    - si j'appel la fonction .LoadFromFile depuis un projet .NET : no problemo, la déserialisation se passe normalement et mon objet se voit bien affecté toutes les valeurs necessaires
    - si j'appel la fonction .LoadFromFile depuis l'exterieur (par exemple VBA), donc en utilisant l'exposition COM, la les choses se gatent puisque la déserialisation ne s'effectue pas, et j'ai une jolie exception


    En retirant la gestion des exception, voici la parti principale du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim myFileStream As FileStream
    Dim deserializer As New SoapFormatter
    Dim temp_obj As Object
    Dim Temp_Foo As New Foo_Class
     
    myFileStream = File.OpenRead(Full_File_Name)
    myFileStream.Position = 0
    temp_obj = deserializer.Deserialize(myFileStream)
    Temp_Foo = DirectCast(temp_obj, Foo_Class)
    myFileStream.Close()
    La ligne qui générère l'exception est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp_obj = deserializer.Deserialize(myFileStream)
    C'est cette même ligne qui passe bien sur un projet .NET et pas sur un projet COM.
    -> j'ai pensé à l'histoire du stream qui doit etre remis sur sa position initiale (position = 0), mais sans trop d'effet.
    -> j'ai également lu qui peut etre il y a une histoire avec la securité sur des applications "non-trusted", j'ai donc rajouté dans mon fichier AssemblyInfo.vb l'attribut suivant, sans trop d'effet non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Assembly: security.AllowPartiallyTrustedCallers()>

    Dites, hein... vous avez un tuyaux pour moi ?
    Merci à tous (et toutes) pour vos futures post

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut la solution...
    Puisque personne n'a fait avancer le schmilblik, je post ici la solution...
    si ca peut reservir, c'est toujours ca de gagné !

    En fait le problème venait qu'à la déserialisation, le framework ne trouvait pas mon assembly... je sais c'est difficile à croire parce que tout le code est executé à partir de ce même assembly...

    La raison de ceci est que le fichier désérialisé contient le nom, la version, et la signature de l'assembly et que le Framework regarde si cet assembly est dans le GAC (global Assembly Cache)...

    J'ai donc ajouter à mon prjet d'install le fait qu'il y ai un ajout automatique de mon assembly dans le GAC, et la HOP, ca marche !

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

Discussions similaires

  1. [Web Service] (Soap) erreur Class 'SoapClient'
    Par am@123 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 09/02/2013, 22h03
  2. [AJAX] Soap Ajax classe javascript
    Par sekaijin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/06/2006, 08h50
  3. Réponses: 3
    Dernier message: 19/03/2006, 09h10
  4. Réponses: 3
    Dernier message: 15/03/2006, 14h53
  5. [C#] [Port Com] PB de permission pour utiliser la classe
    Par dacid dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/04/2005, 11h46

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