Question

Je suis curieux de savoir comment Reflection and Remoting in .net fonctionne en interne. J'ai aussi entendu dire que .net peut utiliser la communication à distance pour communiquer avec des applications écrites dans d'autres langages (tels que Java). Comment ça marche?

C’est probablement une question importante, aussi une réponse qui aborde brièvement chaque question est raisonnable.

Était-ce utile?

La solution

La communication à distance fonctionne en interceptant les appels de certains objets ( MarshalByRefObject ) et en effectuant un appel RPC à la place. essentiellement, l'objet de l'appelant est simplement un proxy léger de l'objet real de l'AppDomain / machine / etc d'origine. Les arguments et les résultats sont transférés (encore une fois, en prenant en compte MarshalByRefObject - sinon, en utilisant BinaryFormatter pour sérialiser les valeurs).

Reflection est profondément intégré au moteur d’exécution, et permet d’accéder aux définitions de type sous-jacentes. Ceci est peut-être en partie dû au fait que l’IL sous les langages .NET est assez expressif en termes de code original.

Cependant, je ne connais personnellement aucun moyen de parler via javascript à distance. C'est peut-être possible, mais les formats utilisés sont (AFAIK) propriétaires. En général, de tels appels sont plus susceptibles de prendre la forme d'appels SOA, tels que des services Web (sur SOAP ou POX), ou d'autres standards ouverts tels que des messages sérialisés avec JSON ou des "tampons de protocole". (format filaire à code source ouvert avec des variantes pour C # et Java).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top