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 :

WCF, .dll et interactions avec le programme "principal"


Sujet :

C#

  1. #1
    Invité
    Invité(e)
    Par défaut WCF, .dll et interactions avec le programme "principal"
    Bonjour a tous !

    Je suis debutant en C#, et il me manque certaines notions...
    En l'occurence, comment marchent les .dll via C#.

    En gros, j'ai un processus (service Windows), qui utilise WCF. J'ai donc genere une .dll pour les Class Library, mais voila mon souci: j'aimerais acceder a une classe (singleton) qui sert de "cache" depuis les methodes Webservices pour recuperer mes informations.

    Archi du programme:
    Le service instancie la classe de cache, lance un thread de surveillance qui utilise lui meme cette classe de cache, et enfin execute l'host des webservices.

    Du cote de la .DLL qui gere les webservices (la ou sont ecrites les fonctions exposees, quoi), il faut que je puisse acceder au cache pour renvoyer les informations a l'utilisateur.

    Comment pourrais-je faire ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    je comprends pas bien ton histoire... c'est un problème de DLL ? de webservice ? de thread ?

    pour utiliser les classes définies dans un assembly (une DLL .NET) il suffit de référencer cette DLL dans ton projet

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'avoue m'etre un peu embrouille...

    En gros, pour faire du WCF, j'ai defini mes classes de WebServices dans la .dll .
    Mais ces classes doivent trouver des informations qui viennent d'une classe qui n'est, elle, pas dans la .dll .

    Si on suppose que cette classe qui contient les info s'appelle "ClassInfo", eh bien je ne peux pas l'instancier dans les methodes definies dans la .dll.
    Cette classe est censee etre accessible ET par le programme principal, ET par la .DLL qui peut y mettre a jour les entrees...

    J'ai pu resoudre le souci en deplacant tout le contenu de la .DLL dans le programme, mais je ne pense pas que ce soit particulierement propre (les tutos sur WCF que j'ai lu parlaient tous de definir les classes de webservices dans une Class Library, qui cree une .dll ...)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai pas bien compris... ta classe ClassInfo, elle est définie où ? dans une autre DLL ? dans le programme ? Si tu veux qu'elle soit accessible à partir de plusieurs assemblies, il faut la mettre dans une class library et la déclarer comme publique

  5. #5
    Invité
    Invité(e)
    Par défaut
    La "ClassInfo" est definie dans le programme normal, et les fonctions WebServices, qui doivent pouvoir y acceder, dans une .dll ...
    D'ou ma question: Une fonction .DLL peut elle acceder aux ressources du programme principal ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par NaeiKinDus Voir le message
    D'ou ma question: Une fonction .DLL peut elle acceder aux ressources du programme principal ?
    si l'exe référence la DLL, la DLL ne peut pas référencer l'exe car ça ferait une référence circulaire.

    La solution dans ton cas serait de créer une autre DLL, référencée par les autres projets, où tu mets les classes qui doivent être utilisées par le programme et la DLL.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok, merci, je vois. Mais c'est pas super
    As-tu une idee de pourquoi la reference entre le main et la .DLL n'est pas "bicanal" ? Si l'un voit l'autre, pourquoi pas l'inverse...?
    Enfin bref, merci de m'avoir eclaire Je pense que je vais rester avec tout dans le main, et laisser de cote l'histoire de .dll

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par NaeiKinDus Voir le message
    As-tu une idee de pourquoi la reference entre le main et la .DLL n'est pas "bicanal" ? Si l'un voit l'autre, pourquoi pas l'inverse...?
    Supposons que le programme référence la DLL ET que la DLL référence le programme :

    Pour pouvoir compiler le programme il faut d'abord que la DLL soit compilée, puisque le programme en a besoin ; mais pour pouvoir compiler la DLL, il faut d'abord que le programme soit compilé, puisque la DLL en a besoin ; mais pour pouvoir compiler le programme il faut d'abord compiler la DLL, et donc d'abord compiler le programme, et donc d'abord compiler la DLL... tu vois l'idée

  9. #9
    Invité
    Invité(e)
    Par défaut
    Aouch, oui, effectivement, je n'avais pas pense a ca
    Bon, merci en tout cas d'avoir repondu a mes questions, je garderai l'histoire de .DLL partagee entre la .DLL de definition et le programme principal en cas de besoin

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

Discussions similaires

  1. Interaction avec un autre programme
    Par levit dans le forum C++
    Réponses: 5
    Dernier message: 05/07/2007, 16h13
  2. Interaction avec autre programme
    Par ZeroZero dans le forum Windows
    Réponses: 2
    Dernier message: 22/06/2007, 10h12

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