Freigeben über


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 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/objectUrian das im obj Parameter angegebene Objekt weitergeleitet.

Gilt für:

Weitere Informationen