Partilhar via


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Método

Definição

Define o URI para a chamada subsequente para o método Marshal(MarshalByRefObject).

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)

Parâmetros

obj
MarshalByRefObject

O objeto para o qual definir um URI.

uri
String

O URI a ser atribuído ao objeto especificado.

Exceções

obj não é um objeto local, já teve o marshaling realizado ou o método atual já foi chamado.

Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.

Exemplos

O exemplo de código a seguir demonstra como definir o URI que será usado pelo Marshal método ao realizar marshaling do objeto especificado.

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

Comentários

O URI definido pelo método atual é usado ao realizar marshaling do objeto fornecido.

Após o marshaling, o URI do objeto especificado é definido como a cadeia de caracteres no uri parâmetro acrescentado ao Guid do atual AppDomain.

Se o aplicativo atual estiver escutando em uma porta HTTP, a cadeia de caracteres especificada no uri parâmetro e a uri cadeia de caracteres acrescentada ao Guid da rota atual AppDomain para o objeto especificado. Por exemplo, se o aplicativo estiver escutando na porta HTTP 9000, então , http://localhost:9000/objectUrie roteie http://localhost:9000/<appdomainguid>/objectUri para o objeto especificado no obj parâmetro .

Aplica-se a

Confira também