ProxyAttribute.CreateProxy-Methode
Erstellt eine Instanz eines Remotingproxys für ein Remoteobjekt, das durch die angegebene ObjRef beschrieben wird und auf dem Server gespeichert ist.
Namespace: System.Runtime.Remoting.Proxies
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Function CreateProxy ( _
objRef As ObjRef, _
serverType As Type, _
serverObject As Object, _
serverContext As Context _
) As RealProxy
'Usage
Dim instance As ProxyAttribute
Dim objRef As ObjRef
Dim serverType As Type
Dim serverObject As Object
Dim serverContext As Context
Dim returnValue As RealProxy
returnValue = instance.CreateProxy(objRef, serverType, serverObject, serverContext)
public virtual RealProxy CreateProxy (
ObjRef objRef,
Type serverType,
Object serverObject,
Context serverContext
)
public:
virtual RealProxy^ CreateProxy (
ObjRef^ objRef,
Type^ serverType,
Object^ serverObject,
Context^ serverContext
)
public RealProxy CreateProxy (
ObjRef objRef,
Type serverType,
Object serverObject,
Context serverContext
)
public function CreateProxy (
objRef : ObjRef,
serverType : Type,
serverObject : Object,
serverContext : Context
) : RealProxy
Parameter
- objRef
Der Objektverweis auf das Remoteobjekt, für das ein Proxy erstellt werden soll.
- serverType
Der Servertyp, auf dem das Remoteobjekt gespeichert ist.
- serverObject
Das Serverobjekt.
- serverContext
Der Kontext, in dem sich das Serverobjekt befindet.
Rückgabewert
Die neue Instanz des Remotingproxys für das Remoteobjekt, das im angegebenen ObjRef beschrieben ist.
Hinweise
Hinweis
Die aktuelle Methode wird aufgerufen, wenn ein Proxy aus einer ObjRef-Instanz erstellt wird, die auf eine mit dem ProxyAttribute-Attribut gekennzeichnete Klasse verweist. Die Methode wird daher nur verwendet, wenn ein ObjRef in einer Rückgabe oder einem Parameter für einen Aufruf oder bei der Aktivierung eines vom Client aktivierten Objekts empfangen wird. Das ProxyAttribute wird nicht für bekannte Objekttypen verwendet.
Beispiel
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
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;
}
virtual RealProxy^ CreateProxy( ObjRef^ objRef1, Type^ serverType, Object^ serverObject, Context^ serverContext ) override
{
MyProxy^ myCustomProxy = gcnew MyProxy( serverType );
if ( serverContext != nullptr )
{
RealProxy::SetStubData( myCustomProxy, serverContext );
}
if ( ( !serverType->IsMarshalByRef) && (serverContext == nullptr) )
{
throw gcnew RemotingException( "Bad Type for CreateProxy" );
}
return myCustomProxy;
}
Plattformen
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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
ProxyAttribute-Klasse
ProxyAttribute-Member
System.Runtime.Remoting.Proxies-Namespace