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 Приложения не должны различать ссылки на прокси-серверы и ссылки на объекты. Однако поставщики услуг, связанные с такими проблемами, как активация, управление временем существования и транзакции, должны иметь такие различия.