RemotingServices.GetObjRefForProxy メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim obj As MarshalByRefObject Dim returnValue As ObjRef returnValue = RemotingServices.GetObjRefForProxy(obj)
戻り値
指定したプロキシが接続されているリモート オブジェクトを表す ObjRef。オブジェクトまたはプロキシがマーシャリングされていない場合は null 参照 (Visual Basic では Nothing)。


ObjRef は、アプリケーション ドメイン境界にわたってオブジェクト参照を転送するために使用するオブジェクトのシリアル化可能な表現です。オブジェクトの ObjRef を作成することをマーシャリングと言います。ObjRef は、チャネルを経由して、別のプロセスやコンピュータ上にある場合もある別のアプリケーション ドメインに転送できます。他のアプリケーション ドメインに転送されたら、その ObjRef を解析して、通常は実際のオブジェクトに接続される、そのオブジェクトのプロキシを作成する必要があります。この操作をマーシャリング解除と言います。マーシャリング解除時には、ObjRef を解析してリモート オブジェクトのメソッド情報が抽出され、透過プロキシ オブジェクトと RealProxy オブジェクトの両方が作成されます。
ObjRef は、マーシャリング対象のオブジェクトの Type とクラスを説明する情報、特定のオブジェクト インスタンスを一意に識別する URI、およびそのオブジェクトが配置されているリモート アプリケーションに到達する方法についての通信関連情報を格納します。

指定したオブジェクトの ObjRef インスタンスを取得する方法のコード例を次に示します。
Dim objRefSample As ObjRef = RemotingServices.GetObjRefForProxy(myRemoteObject) Console.WriteLine("***ObjRef Details***") Console.WriteLine("URI:" + ControlChars.Tab + "{0}", objRefSample.URI) Dim channelData As Object() = objRefSample.ChannelInfo.ChannelData Console.WriteLine("Channel Info:") Dim o As Object For Each o In channelData Console.WriteLine(ControlChars.Tab + "{0}", o.ToString()) Next o Dim envoyInfo As IEnvoyInfo = objRefSample.EnvoyInfo If envoyInfo Is Nothing Then Console.WriteLine("This ObjRef does not have envoy information.") Else Dim envoySinks As IMessageSink = envoyInfo.EnvoySinks Console.WriteLine("Envoy Sink Class: {0}", envoySinks) End If Dim typeInfo As IRemotingTypeInfo = objRefSample.TypeInfo Console.WriteLine("Remote type name: {0}", typeInfo.TypeName) Console.WriteLine("Can my object cast to a Bitmap? {0}", typeInfo.CanCastTo(GetType(System.Drawing.Bitmap), objRefSample))
ObjRef objRefSample = RemotingServices.GetObjRefForProxy(myRemoteObject); Console.WriteLine("***ObjRef Details***"); Console.WriteLine("URI:\t{0}", objRefSample.URI); object[] channelData = objRefSample.ChannelInfo.ChannelData; Console.WriteLine("Channel Info:"); foreach(object o in channelData) Console.WriteLine("\t{0}", o.ToString()); IEnvoyInfo envoyInfo = objRefSample.EnvoyInfo; if (envoyInfo == null) { Console.WriteLine("This ObjRef does not have envoy information."); } else { IMessageSink envoySinks = envoyInfo.EnvoySinks; Console.WriteLine("Envoy Sink Class: {0}", envoySinks); } IRemotingTypeInfo typeInfo = objRefSample.TypeInfo; Console.WriteLine("Remote type name: {0}", typeInfo.TypeName); Console.WriteLine("Can my object cast to a Bitmap? {0}", typeInfo.CanCastTo(typeof(System.Drawing.Bitmap), objRefSample));


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からRemotingServices.GetObjRefForProxy メソッドを検索する場合は、下記のリンクをクリックしてください。

- RemotingServices.GetObjRefForProxy メソッドのページへのリンク