Прокси и сообщения

Клиентские и серверные объекты не взаимодействуют между собой напрямую, а используют так называемого посредника, именуемого прокси. Роль объектов прокси заключается в том, чтобы заставить клиента поверить в то, что он действительно взаимодействует непосредственно с удаленным объектом, который расположен в том же домене приложений (адресном пространстве). Чтобы создать такую иллюзию, прокси имеет такой же интерфейс (т.е. методы и свойства), как и объект, который он замещает (представляет). С точки зрения клиента, конкретный прокси объекта и является самим удаленным объектом. “За кулисами”, однако, прокси передает все вызовы удаленному объекту.

Формально говоря прокси, вызываемый непосредственно клиентом, называется прозрачным прокси. Объект прокси автоматически генерируется CLR и отвечает за правильное предоставление клиенту набора свойств и методов удаленного объекта, а также количество и типы аргументов в каждом удаленном методе. С учетом этого, прозрачный прокси можно рассматривать как фиксированный промежуточный слой, который не может быть модифицирован или расширен программно.

Поскольку прозрачный прокси может проверять входящие аргументы методов, то эта информация упаковывается в другой сгенерированный CLR тип, известный как объект сообщения. По определению все объекты сообщений реализуют интерфейс

System.Runtime.Remoting.Messaging.IMessage: