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 das ein URI festgelegt werden soll.
- uri
- String
Der URI, der dem angegebenen Objekt zugewiesen werden soll.
Ausnahmen
obj ist kein lokales Objekt, wurde bereits gemarstet, oder die aktuelle Methode wurde bereits aufgerufen.
Mindestens einer der Anrufer im Callstack verfügt nicht über die Berechtigung zum Konfigurieren von Remotingtypen und Kanälen.
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 Marshalling des angegebenen Objekts verwendet.
Nach dem Marshalling wird der URI des angegebenen Objekts auf die Zeichenfolge im uri Parameter festgelegt, der an den Guid aktuellen AppDomainParameter angefügt ist.
Wenn die aktuelle Anwendung auf einen HTTP-Port lauscht, dann werden sowohl die im uri Parameter angegebene Zeichenfolge als auch die uri an die Guid aktuelle AppDomain Route an das angegebene Objekt angefügte Zeichenfolge angefügt. Wenn die Anwendung z. B. auf HTTP-Port 9000 lauscht, werden beide http://localhost:9000/objectUriund http://localhost:9000/<appdomainguid>/objectUri das im obj Parameter angegebene Objekt weitergeleitet.