RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metoda

Definicja

Ustawia identyfikator URI dla kolejnego wywołania Marshal(MarshalByRefObject) metody .

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)

Parametry

obj
MarshalByRefObject

Obiekt, dla który ma ustawić identyfikator URI.

uri
String

Identyfikator URI do przypisania do określonego obiektu.

Wyjątki

obj nie jest obiektem lokalnym, został już marshaled lub bieżąca metoda została już wywołana.

Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.

Przykłady

Poniższy przykład kodu pokazuje, jak ustawić identyfikator URI, który będzie używany przez metodę Marshal podczas marshalingu określonego obiektu.

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

Uwagi

Identyfikator URI ustawiony przez bieżącą metodę jest używany podczas marshalingu danego obiektu.

Po przeprowadzeniu marshalingu identyfikator URI określonego obiektu jest ustawiony na ciąg w parametrze uri dołączonym do Guid bieżącego AppDomainobiektu .

Jeśli bieżąca aplikacja nasłuchuje na porcie HTTP, zarówno ciąg określony w parametrze uri , jak i uri ciąg dołączony do Guid bieżącej AppDomain trasy do określonego obiektu. Jeśli na przykład aplikacja nasłuchuje na porcie HTTP 9000, to zarówno http://localhost:9000/objectUri, jak i http://localhost:9000/<appdomainguid>/objectUri kierować do obiektu określonego w parametrze obj .

Dotyczy

Zobacz też