RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Methode

Definition

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

obj
MarshalByRefObject

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.

Gilt für:

Weitere Informationen