Apa tujuan MarshalByRefObject?
93
Remoting; ini berarti bahwa antara AppDomains atau mesin, daripada membuat serial dan mentransfer objek , objek tetap berada di satu ujung dan proxy dibuat di sisi lain. Semua panggilan metode ke proxy dicegat dan panggilan tersebut ditransmisikan sebagai RPC wiki , msdn , yang menyebabkan metode tersebut dieksekusi di komputer lain (biasanya menserialisasi argumen dan mengembalikan nilai).
Catatan: ini dapat menyebabkan antarmuka "cerewet" yang tidak terduga. Pendekatan objek / proxy / RPC sekarang kurang disukai daripada pendekatan dengan batas layanan eksplisit ; Microsoft sekarang merekomendasikan wiki WCF , msdn daripada remoting.
Kegunaan penting lainnya
MarshalByRefObject
adalah untuk mengimplementasikan AOP melalui remote sink-chain.Jika Anda memiliki objek yang berasal dari
ContextBoundObject
(yang berasal dariMarshalByRefObject
), Anda dapat membuat instance dalam Konteks terpisah dalam AppDomain yang sama dan membuat komunikasi antar objek secara otomatis melalui sistem proxy Remoting - memungkinkan Anda untuk menyambungkan sink kustom ke sink Remoting- rantai.Hal ini pada akhirnya memungkinkan Anda untuk 'menghias' panggilan metode ke objek Anda dan mengimplementasikan layanan lintas sektor, seperti logging dan keamanan, dll.
sumber
Penggunaan dasarnya adalah untuk mendukung akses objek antara dua appdomains dan appdomains ini dapat berada di komputer yang sama atau di komputer yang berbeda melalui remote.
Lihat disini
sumber
Objek apa pun di luar domain aplikasi aplikasi pemanggil harus dianggap sebagai Objek Jarak Jauh. Objek Jarak Jauh yang harus diturunkan dari
MarshalByRefObject
Kelas. Objek apa pun dapat diubah menjadi Objek Jarak Jauh dengan menurunkannya dariMarshalByRefObject
. Objek tanpa mewarisiMarshalByRefObject
disebut Objek Non-remotable .sumber