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 :

DLL et plug-in


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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
    Par défaut DLL et plug-in
    Bonjour

    Ma question est simple.

    J'ai un programme Hote dans un repertoire "Bin".

    Ce programme peut créer dynamiquement des objets provenant d'une DLL (qui correspond à un plug-in). L'assembly ou se trouve l'objet n'est pas dans le repertoire Bin.

    Mon problème :

    Quand j'appelle une méthode de Sérialisation de cet objet, ca plante.
    Raison : L'assembly se trouvant dans une autre DLL, la définition de l'objet que je sérialise se trouve également hors du répertoire Bin de l'application ayant créer cet objet.

    Comment puis-je résoudre celà ? sachant que j'aimerais éviter de mettre
    TOUS les plug-in avec leurs dépendances dans un seul répertoire.

    Merci à tous.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 505
    Par défaut
    Votre explication du problème ne me paraît pas très claire.
    Exposez le problème puis vos hypothèses.
    La notion de dll et d'emplacement de celle-ci n'a que très peu à faire avec .NET et ses assemblies.

    Comment chargez-vous les classes du plug-ins ?
    Utilisez-vous un ApplicationDomain dédié pour le chargement des assemblies de chaque plug-ins ?

  3. #3
    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
    Par défaut
    ok, j'explicite plus clairement

    J'ai un projet qui genère un EXE.

    Dans ce projet, j'instancie des objets implémentant une interface IPlugIn.

    Des assemblys (autres projets de librairie) implémente des objets MyPlugIn (par exemple) implémentant l'interface IPlugIn.

    Ensuite, dans l'exe, je cherche les assemblys contenues dans un répertoire (différent de l'exe), je les charge (avec Assembly.LoadFrom()) puis je regarde si une des classes de cette assembly implémente mon interface. Si c'est le cas, je finis par un
    Activator.CreateInstance(). Jusque là, tout fonctionne bien.

    A noter que pour "caster" le retour de CreateInstance() en IPlugIn, je suis obligé de ne pas avoir la dll de déclaration des interfaces dans mes deux répertoires (celui de l'exe, celui de la dll car apparemment, en montant l'assembly du plugin, l'assembly d'interfacage est montée et est donc, différente en terme de fichier (oui, je sais, c bizarre)) que l'assembly d'interfacage montée par l'exe...)

    Une fois mon plugin monté, tout fonctionne à merveille jusqu'au moment ou j'essaye de Serialiser ou déserialiser ce plugin. Lors de la serialisation ou deserialisation, le sérialiseur m'indique qu'il ne connait pas une des assembly dont dépend ce fameux plug-in (alors que cette assembly a été monté lors du chargement du plug-in)...

    En fait, j'ai l'impression que lorsque je crée mon objet, il y a une différenciation qui est faite entre la création et l'utilisation en terme de DLL vu comme dépendance.

    J'ai une solution possible : le GAC.. mais j'aimerais bien l'éviter comme solution.

    Une idée ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 505
    Par défaut
    Pouvez-vous vous arranger des objets de l'assembly du Plug-In dans un autre AppDomain que celui par défaut ?

  5. #5
    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
    Par défaut
    salut

    n'étant pas très familier à l'utilisation des AppDomain, pourrais tu m'en dire plus sur la façon que tu aurais pour faire ce que tu proposes ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 505
    Par défaut
    Heu, j'ai un peu la flemme.
    Google:
    http://social.msdn.microsoft.com/For...3-e6ce0a855e56

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

Discussions similaires

  1. dll, add-in, plug-in : Que sont ce?
    Par PeD012 dans le forum VB.NET
    Réponses: 6
    Dernier message: 01/12/2011, 21h52
  2. Plug-in == DLL ?
    Par ToToR_2000 dans le forum Qt
    Réponses: 3
    Dernier message: 01/10/2010, 12h43
  3. Une bibliothèque portable pour la gestion des dlls (plug-ins)
    Par Spartan03 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 20/11/2006, 19h33
  4. DLL & Plug-ins
    Par VincentB dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2003, 17h16

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