Compartir a través de


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Método

Definición

Establece la dirección URI de la siguiente llamada al 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

Objeto para el que se va a establecer una dirección URI.

uri
String

Dirección URI que se va a asignar al objeto especificado.

Excepciones

obj no es un objeto local, ya se han calculado sus referencias o ya se ha llamado al método actual.

Al menos uno de los llamadores situados en la parte superior de la pila de llamadas no tiene permiso para configurar los tipos y canales de comunicación remota.

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer el URI que usará el Marshal método al serializar el 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

Comentarios

El URI establecido por el método actual se usa al serializar el objeto especificado.

Después de calcular las referencias, el URI del objeto especificado se establece en la cadena del uri parámetro anexado al Guid del objeto actual AppDomain.

Si la aplicación actual está escuchando en un puerto HTTP, la cadena especificada en el uri parámetro y la uri cadena anexada a la Guid de la ruta actual AppDomain al objeto especificado. Por ejemplo, si la aplicación escucha en el puerto HTTP 9000, tanto http://localhost:9000/objectUricomo enrutan http://localhost:9000/<appdomainguid>/objectUri al objeto especificado en el obj parámetro .

Se aplica a

Consulte también