RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Método

Definición

Establece el URI para la llamada posterior al Marshal(MarshalByRefObject) método .

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 un URI.

uri
String

Identificador URI que se va a asignar al objeto especificado.

Excepciones

obj no es un objeto local, ya se ha serializado o ya se ha llamado al método actual.

Al menos uno de los autores de llamada más altos en la pila de llamadas no tiene permiso para configurar 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 serializar, el URI del objeto especificado se establece en la cadena del uri parámetro anexado al Guid de la clase actual AppDomain.

Si la aplicación actual escucha 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, y http://localhost:9000/objectUrihttp://localhost:9000/<appdomainguid>/objectUri enruta al objeto especificado en el obj parámetro .

Se aplica a

Consulte también