ProxyAttribute.CreateProxy メソッド
指定した ObjRef によって記述されたリモート オブジェクトのリモート処理プロキシで、サーバー上に存在するリモート処理プロキシのインスタンスを作成します。
Public Overridable Function CreateProxy( _
ByVal objRef As ObjRef, _ ByVal serverType As Type, _ ByVal serverObject As Object, _ ByVal serverContext As Context _) As RealProxy
[C#]
public virtual RealProxy CreateProxy(ObjRefobjRef,TypeserverType,objectserverObject,ContextserverContext);
[C++]
public: virtual RealProxy* CreateProxy(ObjRef* objRef,Type* serverType,Object* serverObject,Context* serverContext);
[JScript]
public function CreateProxy(
objRef : ObjRef,serverType : Type,serverObject : Object,serverContext : Context) : RealProxy;
パラメータ
- objRef
プロキシの作成対象のリモート オブジェクトへのオブジェクト参照。 - serverType
リモート オブジェクトが存在するサーバーの種類。 - serverObject
サーバー オブジェクト。 - serverContext
サーバー オブジェクトが存在するコンテキスト。
戻り値
指定した ObjRef で記述されたリモート オブジェクトのリモート処理プロキシの新しいインスタンス。
解説
メモ 現在のメソッドは、 ProxyAttribute 属性でマークされたクラスを参照する ObjRef インスタンスからプロキシが作成されると呼び出されます。したがって、このメソッドは、呼び出しの返信またはパラメータから ObjRef を受信したとき、あるいはクライアント側でアクティブ化されるオブジェクトがアクティブ化中にだけ使用します。 ProxyAttribute は、既知のオブジェクト型としては使用されません。
使用例
Public Overrides Function CreateProxy(objRef1 As ObjRef, serverType As Type, _
serverObject As Object, serverContext As Context) As RealProxy
Dim myCustomProxy As New MyProxy(serverType)
If Not (serverContext Is Nothing) Then
RealProxy.SetStubData(myCustomProxy, serverContext)
End If
If Not serverType.IsMarshalByRef And serverContext Is Nothing Then
Throw New RemotingException("Bad Type for CreateProxy")
End If
Return myCustomProxy
End Function 'CreateProxy
[C#]
public override RealProxy CreateProxy(ObjRef objRef1,
Type serverType,
object serverObject,
Context serverContext)
{
MyProxy myCustomProxy = new MyProxy(serverType);
if(serverContext != null)
{
RealProxy.SetStubData(myCustomProxy,serverContext);
}
if((!serverType.IsMarshalByRef)&&(serverContext == null))
{
throw new RemotingException("Bad Type for CreateProxy");
}
return myCustomProxy;
}
[C++]
public:
RealProxy* CreateProxy(ObjRef* objRef1,
Type* serverType,
Object* serverObject,
Context* serverContext)
{
MyProxy* myCustomProxy = new MyProxy(serverType);
if (serverContext != 0)
{
RealProxy::SetStubData(myCustomProxy, serverContext);
}
if ((!serverType->IsMarshalByRef)&&(serverContext == 0)) {
throw new RemotingException(S"Bad Type for CreateProxy");
}
return myCustomProxy;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
ProxyAttribute クラス | ProxyAttribute メンバ | System.Runtime.Remoting.Proxies 名前空間