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 :

Récupérer EventArg généré d'une même DLL, par 2 applications


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Par défaut Récupérer EventArg généré d'une même DLL, par 2 applications
    Bonjour,
    J'ai créée une DLL contenant un Event.
    J'ai 2 applications qui utilisent la même DLL.
    Les 2 applications se situe dans le même dossiers. Ils utilisent donc le même fichier *.dll.

    Quand la 1ère application s'abonne à l'évènement, et que j'en génère, je les récupères biens.
    Quand la 2ème application génère des évènements, la 1ère application ne reçoit rien.

    Pourquoi ?

    Détails de mon évènement
    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
    19
    20
    21
    22
    23
     
    public static class TraceEvent
    {
        public delegate void TraceLogEventHandler(TraceEventArgs e);
     
        public static event TraceLogEventHandler EventTraced;
     
        public class TraceEventArgs : EventArgs
        {
             public Trace Trace { get; set; }
     
             public TraceEventArgs(Trace item)
             {
                  this.Trace = item;
             }
        }
     
        public static void Infos(TraceType pTraceType, string pMessage, Trace pTraceParent, string memberName, string sourceFilePath, int sourceLineNumber, string callerName)
        {
             Trace trace = GenerateTrace(pTraceType, pMessage, pTraceParent, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0);
          OnTraceLog(new TraceEventArgs(trace));
        }
    }

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    2 processus ne peuvent communiquer entre eux par défaut un event reste au sein de son exe.
    Si tu veux qu'ils communiquent, il faut utiliser un système de communication et le coder (tcpip, canneaux nommés etc)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Par défaut
    Merci pour ta réponse.

    J’espérai qu'il y avait une possibilité.

  4. #4
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Je me demande si tu ne mélanges pas certains concepts. Le fait que tes deux applications utilisent la même dll signifie simplement que tu n'auras pas à coder deux fois la même chose. Mais chaque programme s'exécute dans son propre univers. De plus je dirais qu'en un sens il existe entre un exécutable/dll et un programme en exécution une relation similaire à celle qui existe entre une classe et un objet : l'un constitue un modèle qui sera instancié par un autre. Tes dll seront des modèles de code exécutable tandis chaque programme lancé sera une instance avec un contexte à part entière. Ainsi un programme ne s'abonne pas aux événements de la dll, mais certains objets du programme s'abonneront aux événements de certains objets instancié à partir du modèle de la dll ; le fait qu'ils utilisent la même dll implique qu'ils se comporteront de la même manière sur certains points.

    Si tu veux que te deux programmes puissent communiquer il te faudra procéder autrement. Il doit être possible de rendre le code exécutable d'un programme disponible dans un autre, par exemple en ayant un référence dessus et en l'exécutant dans un thread à part pour les deux (ou trois, ou plus) puissent s'exécuter simultanément mais indépendamment (après tout, un assembly .exe n'est jamais qu'une dll avec un Main, on peut l'utiliser de la même manière. Ou alors comme le suggère Pol63 il faut créer un passerelle entre ces deux contextes ; tu peux par exemple créer un programme serveur dont la seule tâche sera de recevoir des abonnements distants et de transférer les informations d'un client à l'autre, tandis que tes programmes seront clients et s'y connecteront.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/10/2008, 12h45
  2. Récupérer l'URL d'une page ouverte par vba apres une recherche
    Par ubssecurities dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/08/2008, 10h30
  3. Réponses: 6
    Dernier message: 11/09/2006, 13h58
  4. Réponses: 5
    Dernier message: 22/02/2006, 18h32
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 15h50

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