example - remarks c#
¿Cuál es el uso principal de MarshalByRefObject? (4)
Cualquier objeto fuera del dominio de aplicación de la aplicación que llama se debe considerar como Objeto remoto. 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.
¿Cuál es el propósito de MarshalByRefObject?
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 a métodos al proxy se interceptan y la llamada se transmite como wiki RPC , msdn , haciendo que el método se ejecute en la otra máquina (normalmente serializando los argumentos y el valor devuelto).
Nota: esto puede conducir a interfaces inesperadamente "habladas". El enfoque objeto / proxy / RPC es ahora menos preferible a los enfoques con un límite de servicio explícito ; Microsoft ahora recomienda wiki WCF , msdn lugar de comunicación remota.
su uso básico es para admitir el acceso de objetos entre dos aplicaciones y estos dominios pueden estar en la misma computadora o en las diferentes computadoras a través de la comunicación remota.
Otro uso importante de MarshalByRefObject
es la implementación de AOP a través de MarshalByRefObject
de MarshalByRefObject
receptores.
Si tiene un objeto que deriva de ContextBoundObject
(que a su vez deriva de MarshalByRefObject
), puede crear una instancia en un Contexto separado dentro del mismo AppDomain y hacer que las comunicaciones entre objetos pasen automáticamente por el sistema de proxy remoto, lo que le permite conectar receptores personalizados en Remoting. cadena de fregadero
Esto finalmente le permite ''decorar'' las llamadas a los métodos a sus objetos e implementar servicios transversales, como el registro y la seguridad, etc.