RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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/objectUri
como enrutan http://localhost:9000/<appdomainguid>/objectUri
al objeto especificado en el obj
parámetro .