2010-11-28 22 views

Respuesta

83

Remoting; significa que entre AppDomains o máquinas, en lugar de serializar y transferir el objeto , el objeto permanece en un extremo y se crea un proxy en el otro. Todas las llamadas al proxy se interceptan y la llamada se transmite como RPC wiki, msdn, haciendo que el método se ejecute en la otra máquina (normalmente serializando los argumentos y el valor devuelto).

Nota: esto puede provocar interfaces inesperadamente "parlanchinas". El enfoque objeto/proxy/RPC es ahora menos preferible a los enfoques con un límite de servicio explícito; Microsoft ahora recomienda WCF wiki, msdn en lugar de comunicación remota.

+23

... como si el WCF era menos hinchada ... –

+4

@pavel - es bastante compleja, pero al menos nos clara donde las llamadas son caros. Si se refiere a * ancho de banda *, hay formas de mitigar eso. –

+1

A veces no * quiere * límites explícitos, como en los escenarios enumerados para https://processdomain.codeplex.com/ En su lugar, desea transparencia. –

7

que el uso básico es para apoyar el acceso de objetos entre dos dominios de aplicación y estos dominios de aplicación pueden estar en el mismo equipo o en los diferentes ordenadores a través de la interacción remota.

See Here

23

Otro uso importante de MarshalByRefObject es para la implementación de AOP a través de interacción remota fregadero cadenas.

Si usted tiene un objeto que se deriva de ContextBoundObject (que a su vez deriva de MarshalByRefObject) se puede crear una instancia en un contexto independiente dentro del mismo dominio de aplicación y tienen las comunicaciones entre los objetos pasan automáticamente a través del sistema de comunicación remota de proxy - que le permite conectar personalizada se hunde en la cadena de fregaderos de Remoting.

En última instancia, le permite 'decorar' método llama a los objetos e implementar servicios transversales, tales como la tala y la seguridad, etc.

1

Cualquier objeto fuera del dominio de la aplicación de la solicitud de la persona que llama debe ser considerado como remoto Objeto. Un objeto remoto que debe derivarse de MarshalByRefObject Class. Cualquier objeto se puede cambiar a un objeto remoto derivandolo de MarshalByRefObject. Los objetos sin heredar de MarshalByRefObject se llaman objetos no controlables.

Cuestiones relacionadas