Pregunta

Tengo curiosidad por saber cómo funcionan internamente la reflexión y la comunicación remota en .net. También escuché que .net puede usar la comunicación remota para comunicarse con aplicaciones escritas en otros idiomas (como Java). ¿Cómo funciona eso?

Esta es probablemente una pregunta grande, por lo que una respuesta que toque brevemente cada pregunta es razonable.

¿Fue útil?

Solución

El control remoto funciona interceptando llamadas a ciertos objetos ( MarshalByRefObject ) y, en su lugar, realiza una llamada RPC; esencialmente, el objeto en la persona que llama es solo un proxy ligero para el objeto real en el dominio de aplicación / máquina / etc originador. Los argumentos y los resultados se transfieren (nuevamente, teniendo en cuenta a MarshalByRefObject ; de lo contrario, utilizando BinaryFormatter para serializar los valores).

Reflection está integrado en el tiempo de ejecución del núcleo y proporciona acceso a las definiciones de tipos subyacentes. Esto es posiblemente en parte porque la IL debajo de los lenguajes .NET es bastante expresiva en términos del código original.

Sin embargo, no tengo conocimiento personal de ninguna manera de hablar a través de java. Puede ser posible, pero los formatos utilizados son de propiedad exclusiva (AFAIK). En general, es más probable que tales llamadas tomen la forma de llamadas SOA, como servicios web (en SOAP o POX), u otros estándares abiertos, como mensajes serializados con JSON o protocolo de almacenamiento de datos " (un formato de código abierto con variantes para C # y java).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top