2011-02-01 3 views
0

Est-il possible d'appeler une fonction sur une classe externe? La classe externe s'exécute sur une autre machine (disons que ses emplacements sont mymachine.com). ont utilisé CreateInstance il y a quelque temps mais ne pensent pas que cela fera (corrigez-moi si je me trompe). Je cherchais depuis longtemps mais je n'ai pas encore trouvé de solution alors j'espère que l'un d'entre vous pourra vous aider.C# appel fonction externe (classe autre machine)

l'une des sources que j'ai cherché est, mais pas d'info :( http://www.dreamincode.net/forums/topic/102523-call-an-external-function-on-button-click/

espoir u peut aider.

+0

Lorsque vous dites: "La classe externe s'exécute sur une autre machine", vous voulez probablement dire qu'un processus contenant une instance de cette classe est en cours d'exécution sur une autre machine. – HuBeZa

Répondre

4

utiliser un self service hébergé WCF, Remoting ou toute autre technologie de réseau.

Il

[Modifier] Je voudrais également ajouter que vous faites attention lorsque vous utilisez des mécanismes d'accès distant (soit à distance, WCF, rpc, etc.) vous travaillez avec des "proxies". Un proxy est un objet qui simule l'objet réel, mais encapsule la communication. Il permet au développeur de cacher la complexité en ayant un objet, avec des propriétés, des méthodes etc., mais les technologies derrière (la messagerie xml pour un service WCF par exemple) doivent être connues par le développeur. Cela peut avoir des impacts sur le réseau, la réactivité et aussi le modèle de programmation.

3

Ce type d'opération est ce pour quoi Web Services/WCF Services/Remoting est construit. WCF est une très bonne solution pour gérer la communication à travers les frontières. Jetez un oeil dans WCF, google est votre ami.

0

Si l'ensemble est externe sur un dossier partagé sur la machine distante, vous pouvez le faire l'un des éléments suivants:

1) Implémentez le gestionnaire d'événements AppDomain.CurrentDomain.AssemblyResolve pour charger l'assemblage externe et effectuer les appels nécessaires. Ajoutez également une référence à l'assembly dans votre projet (copylocal = false). Le premier appel à l'instance d'une classe ou d'une méthode statique dans l'assembly appellera le gestionnaire d'événements et chargera l'assembly externe distant.

2) Charger l'ensemble par réflexion en utilisant System.Reflection.Assembly.LoadFrom() et fournir le chemin distant. Utilisez la réflexion pour appeler la méthode souhaitée, etc.

Questions connexes