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#] Remoting client


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 36
    Par défaut [C#] Remoting client
    Bonjour,

    je sèche un peu pour l'utilisation du remoting... Je m'explique :
    j'ai un client et un serveur en remoting (tcp ou ipc), ca marche.

    Coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       ICatalog mgr = (IBibliotheque)Activator.GetObject(typeof(IBibliotheque), urlServeur + "/MesMethodes");
       monTypeLitteraire = mgr.GetType(NomBouquin);
    ca ca marche.

    Maintenant je voudrais utiliser le fichier de configuration, et l'instruction RemotingConfiguration.Configure(@"monFicher.config", false),
    mais.... que faire après ??
    Dans les exemples que je trouve, c'est :

    MyRemoteObject robj = new MyRemoteObject();

    Sauf que moi je n'implémente pas la classe MyRemoteObject dans mon projet client, seulement une interface.
    (et évidement côté serveur cette classe utilise cette interface -> MyRemoteObject() : IBibliotheque



    Comment utiliser mes objets côté client ?

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut
    Bonjour,

    Fichier Client.config:

    Code xml : 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
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    	<system.runtime.remoting>
    		<application name="Client">
    			<client>
    				<wellknown type="Serveur.IBibliotheque, Nom de l'assembly ou trouver l'interface" url="tcp://10.0.0.1:1068/ServeurRemote.rem"/>
    			</client>
    			<channels>
    				<channel ref="tcp" port="0">
    					<clientProviders>
    						<formatter ref="binary"/>
    					</clientProviders>
    					<serverProviders>
    						<formatter ref="binary" typeFilterLevel="Full" />
    					</serverProviders>
    				</channel>
    			</channels>
    		</application>
    	</system.runtime.remoting>
    </configuration>

    et pour se connecter au serveur:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Initialisation de la configuration du client
    RemotingConfiguration.Configure("Client.config", false);

    Et ensuite pour instancier tes objets:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Activator.GetObject(typeof(type de l'objet), "URL de l'objet")

    Bye

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 36
    Par défaut
    Citation Envoyé par Pilloutou Voir le message

    et pour se connecter au serveur:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Initialisation de la configuration du client
    RemotingConfiguration.Configure("Client.config", false);

    Et ensuite pour instancier tes objets:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Activator.GetObject(typeof(type de l'objet), "URL de l'objet")

    Bye
    Oui, mais......
    typeof(type de l'objet) : mon type n'est pas connu, seulement l'interface.... Bon ca ca doit passer.

    Par contre je suis obligé de mettre l'url de l'objet pour me connecter, et ca ca ne m'intéresse pas.. L'url se trouve dans le fichier de conf., donc je pensais que le boulot était fait déjà quand on fait le .Configure() ? Et surtout pour que le paramétrage reste dans ce fichier de configuration du remoting....

    zut zut zut...

  4. #4
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 36
    Par défaut
    En fait, si j'utilise le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activator.GetObject(typeof(type de l'objet), "URL de l'objet")
    ca ne me sert à rien de faire avant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Initialisation de la configuration du client
    RemotingConfiguration.Configure("Client.config", false);

  5. #5
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut
    Bonjour,

    tu référence côté client et côté serveur ton interface IBibliotheque.
    Ensuite il faut utiliser une table qui associe les services WKO configurés par le serveur à des interfaces configurées dans le client.

    Regarde ce lien qui devrait t'interesser.


    ++

  6. #6
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 36
    Par défaut
    Cool merci, ca a l'air pas mal ca....

    edit :
    ca marche !! re-merci.

    donc pour récuppérer les types d'objets dispo à distance, il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RemotingConfiguration.GetRegisteredWellKnownClientTypes()
    cela donne la liste de tous les types.
    Ensuite, pour en récuppérer un en particulier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
             WellKnownClientTypeEntry entry = (WellKnownClientTypeEntry)
                                                            dicoTypes[type];
             return Activator.GetObject(entry.ObjectType, entry.ObjectUrl);
    voir le lien plus haut pour l'exemple complet.

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

Discussions similaires

  1. Remote client timeout
    Par kranagard dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 30/11/2012, 17h47
  2. .Net Remoting Client/Serveur Evenement Winform
    Par kisscool14 dans le forum C#
    Réponses: 2
    Dernier message: 22/05/2009, 16h38
  3. [Remoting] Comment savoir quel channel un client utilise pour se connecter?
    Par eldoctor.Sylvain dans le forum Framework .NET
    Réponses: 1
    Dernier message: 18/09/2006, 15h40
  4. Réponses: 3
    Dernier message: 19/07/2006, 10h38
  5. Réponses: 7
    Dernier message: 27/02/2006, 22h22

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