RemotingServices.IsTransparentProxy(Object) メソッド

定義

特定のオブジェクトが、透過プロキシまたは実際のオブジェクトのどちらであるかを示す Boolean 値を返します。

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 パラメーターで指定したオブジェクトが、透過プロキシまたは実際のオブジェクトのどちらであるかを示す Boolean 値。

次のコード例は、 メソッドを 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のリモート処理サブ区分に関係なく使用できます。 アプリケーションでは、プロキシ参照とオブジェクト参照を区別する必要はありません。 ただし、アクティブ化、有効期間管理、トランザクションなどの問題を処理するサービス プロバイダーは、このような区別を行う必要があります。

適用対象

こちらもご覧ください