RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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/objectUri
e roteie http://localhost:9000/<appdomainguid>/objectUri
para o objeto especificado no obj
parâmetro .