RemotingServices.IsTransparentProxy(Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回布林值,指出指定的物件是透明 Proxy 或實際物件。
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
參數中指定的物件是透明 Proxy 或實際物件。
範例
下列程式代碼範例示範如何使用 IsTransparentProxy 方法來判斷物件是否為 Proxy 或實際物件。 如需完整的範例程式代碼,請參閱 類別的 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
備註
在任何類型的遠端界限上使用 物件的客戶端,實際上是使用物件的透明 Proxy。 透明 Proxy 提供實際對象位於客戶端空間中的印象。 其可藉由使用遠端基礎結構將呼叫轉送至實際對象來達成此目的。
透明 Proxy 本身是由 型 RealProxy別的 Managed 運行時間類別實例所儲存。 會 RealProxy 實作從透明 Proxy 轉送作業所需的一部分功能。 Proxy 物件會繼承 Managed 物件的相關聯語意,例如垃圾收集、成員和方法的支援,並可擴充以形成新的類別。 因此,Proxy 具有雙重本質;一方面,它必須做為與遠端物件相同的類別物件, (透明 Proxy) ,另一方面則是受控物件本身。
您可以使用 Proxy 物件,而不需考慮 內 AppDomain的任何遠端細分。 應用程式不需要區分 Proxy 參考和對象參考。 不過,處理啟用、存留期管理和交易等問題的服務提供者必須做出這類區別。