RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Legt den URI für den nachfolgenden Aufruf der Marshal(MarshalByRefObject)-Methode fest.
public:
static void SetObjectUriForMarshal(MarshalByRefObject ^ obj, System::String ^ uri);
public static void SetObjectUriForMarshal (MarshalByRefObject obj, string uri);
static member SetObjectUriForMarshal : MarshalByRefObject * string -> unit
Public Shared Sub SetObjectUriForMarshal (obj As MarshalByRefObject, uri As String)
Parameter
Das Objekt, für den ein URI festgelegt werden soll.
- uri
- String
Der URI, der dem angegebenen Objekt zugewiesen werden soll.
Ausnahmen
obj
ist kein lokales Objekt, wurde bereits gemarshallt, oder die aktuelle Methode wurde bereits aufgerufen.
Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie der URI festgelegt wird, der von der Marshal -Methode beim Marshallen des angegebenen Objekts verwendet wird.
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Security::Permissions;
public ref class SetObjectUriForMarshalTest
{
public:
ref class TestClass: public MarshalByRefObject{};
[SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::RemotingConfiguration)]
static void Main()
{
TestClass^ obj = gcnew TestClass;
RemotingServices::SetObjectUriForMarshal( obj, "testUri" );
RemotingServices::Marshal(obj);
Console::WriteLine( RemotingServices::GetObjectUri( obj ) );
}
};
using System;
using System.Runtime.Remoting;
public class SetObjectUriForMarshalTest {
class TestClass : MarshalByRefObject {
}
public static void Main() {
TestClass obj = new TestClass();
RemotingServices.SetObjectUriForMarshal(obj, "testUri");
RemotingServices.Marshal(obj);
Console.WriteLine(RemotingServices.GetObjectUri(obj));
}
}
Imports System.Runtime.Remoting
Imports System.Security.Permissions
Public Class SetObjectUriForMarshalTest
Class TestClass
Inherits MarshalByRefObject
End Class
<SecurityPermission(SecurityAction.Demand, Flags:= SecurityPermissionFlag.RemotingConfiguration )> _
Public Shared Sub Main()
Dim obj As TestClass = New TestClass()
RemotingServices.SetObjectUriForMarshal(obj, "testUri")
RemotingServices.Marshal(obj)
Console.WriteLine(RemotingServices.GetObjectUri(obj))
End Sub
End Class
Hinweise
Der von der aktuellen Methode festgelegte URI wird beim Marshallen des angegebenen Objekts verwendet.
Nach dem Marshallen wird der URI des angegebenen Objekts auf die Zeichenfolge im Parameter festgelegt, der uri
an den Guid des aktuellen AppDomainangefügt wird.
Wenn die aktuelle Anwendung an einem HTTP-Port lauscht, dann werden sowohl die im uri
Parameter angegebene Zeichenfolge als auch die uri
Zeichenfolge, die an die Guid der aktuellen AppDomain Route an das angegebene Objekt angefügt wird, überwacht. Wenn die Anwendung z. B. am HTTP-Port 9000 lauscht, werden sowohl als http://localhost:9000/<appdomainguid>/objectUri
auch http://localhost:9000/objectUri
an das im obj
Parameter angegebene Objekt weitergeleitet.