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 :

[C#] Serialisation et deserialisation dans une DLL


Sujet :

C#

  1. #1
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut [C#] Serialisation et deserialisation dans une DLL
    Bonjour,

    J'ai une application utilisant des dll créées dans d'autres projets. Si je mets les dll à la racine du programme, la sérialisation et la désérialisation d'objets fonctionnent parfaitement. Mais si je mets mes dll dans un répertoire "system", la sérialisation fonctionne, mais pas la désérialisation. J'obtiens alors le message

    Parametrage.chargerImpossible de trouver l'assembly 'Biblio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
    à System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
    à System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
    à System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
    à System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
    à System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
    à System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
    à System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    à System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    à System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
    à Biblio.Metiers.Parametrage.charger() dans C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2005\Projects\Passerelle\Biblio\Metiers\Parametrage.cs:ligne 211


    Le message donne l'impression que la bibliothèque de classes ne se trouve pas elle-même

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    beh, si tes dll ne sont pas dans le repertoire root c'est à priori logique car
    pour désérialiser, il faut pouvoir analyser le type à deserialiser... et donc
    posséder la dll... je crois, de mémoire, qu'il faudrait que tu "enregistres"
    tes dll (si elles ne sont pas au meme endroit).. c'est un fonctionnement classique sous windows.. si l'OS ne trouve pas la dll la ou s'execute le programme, il cherche dans le $path.. et si il ne trouve pas.. beh il le dit


    Ca te va comme réponse ?

    The Monz, Toulouse

  3. #3
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Mais en ajoutant un Assembly.Load avant le Deserialize, ça ne fonctionne pas ?

    N'y-a-t-il pas moyen de charger l'ensemble des dll avec l'application ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    le probleme, c'est pas de charger la DLL mais de la trouver...

    Ton programme doit savoir ou se trouve la dll pour ma monter... hors si tu
    la déplace par rapport à l'endroit ou il l'attend, il va pas etre content, crois moi

    The Monz, Toulouse

    PS : T'emmerde pas, fais comme "presque tout le monde", laisse toutes tes DLL dans le meme repertoire que l'executable.. Ca ne choquera pas plus que cela

    (en general, c'est une pseudo regle tacite microsoft... EXE + DLL dans le meme repertoire (sauf pour les dll système of course)

  5. #5
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Effectivement, si ça pose de tels problèmes, je vais revenir à cette solution.

    Merci

Discussions similaires

  1. Deserialisation dans une DLL
    Par brachior dans le forum C#
    Réponses: 3
    Dernier message: 30/06/2011, 10h41
  2. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 09h57
  3. [BP7] Problème chargement de ressource dans une DLL
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 26/07/2003, 22h36
  4. PB avec "self" dans une dll
    Par DiJiRiDouS dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 10h32
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 11h15

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