RemotingServices.IsTransparentProxy(Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает логическое значение, указывающее, является ли данный объект прозрачным прокси или настоящим объектом.
public:
static bool IsTransparentProxy(System::Object ^ proxy);
public static bool IsTransparentProxy (object proxy);
static member IsTransparentProxy : obj -> bool
Public Shared Function IsTransparentProxy (proxy As Object) As Boolean
Параметры
- proxy
- Object
Проверяемая ссылка на объект.
Возвращаемое значение
Логическое значение, указывающее, является ли объект, указанный в параметре proxy
, прозрачным прокси или настоящим объектом.
Примеры
В следующем примере кода показано использование метода для IsTransparentProxy определения того, является ли объект прокси-сервером или реальным объектом. Полный пример кода см. в примере для AsyncResult класса .
// Creates an instance of a context-bound type SampleSynchronized.
SampleSynchronized^ sampSyncObj = gcnew SampleSynchronized;
// Checks whether the Object* is a proxy, since it is context-bound.
if ( RemotingServices::IsTransparentProxy( sampSyncObj ) )
Console::WriteLine( "sampSyncObj is a proxy." );
else
Console::WriteLine( "sampSyncObj is NOT a proxy." );
// Creates an instance of a context-bound type SampleSynchronized.
SampleSynchronized sampSyncObj = new SampleSynchronized();
// Checks whether the object is a proxy, since it is context-bound.
if (RemotingServices.IsTransparentProxy(sampSyncObj))
Console.WriteLine("sampSyncObj is a proxy.");
else
Console.WriteLine("sampSyncObj is NOT a proxy.");
' Creates an instance of a context-bound type SampleSynchronized.
Dim sampSyncObj As New SampleSynchronized()
' Checks whether the object is a proxy, since it is context-bound.
If RemotingServices.IsTransparentProxy(sampSyncObj) Then
Console.WriteLine("sampSyncObj is a proxy.")
Else
Console.WriteLine("sampSyncObj is NOT a proxy.")
End If
Комментарии
Клиент, использующий объект через любой тип границы удаленного взаимодействия, фактически использует прозрачный прокси-сервер для объекта. Прозрачный прокси-сервер создает впечатление, что фактический объект находится в пространстве клиента. Это достигается путем переадресации вызовов, сделанных в нем, в реальный объект с помощью инфраструктуры удаленного взаимодействия.
Прозрачный прокси-сервер размещается в экземпляре управляемого класса среды выполнения типа RealProxy. реализует RealProxy часть функциональных возможностей, необходимых для переадресации операций с прозрачного прокси-сервера. Прокси-объект наследует связанную семантику управляемых объектов, таких как сборка мусора, поддержка членов и методов, и может быть расширен для формирования новых классов. Таким образом, прокси-сервер имеет двойную природу; с одной стороны, он должен выступать в качестве объекта того же класса, что и удаленный объект (прозрачный прокси-сервер), а с другой — сам управляемый объект.
Прокси-объект можно использовать без учета любых подразделений удаленного AppDomainвзаимодействия в . Приложения не должны различать прокси-ссылки и ссылки на объекты. Однако поставщики услуг, занимающиеся такими вопросами, как активация, управление жизненным циклом и транзакции, должны проводить такие различия.