RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit l'URI pour le prochain appel à la méthode 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)
Paramètres
Objet pour lequel définir un URI.
- uri
- String
URI à assigner à l'objet spécifié.
Exceptions
obj
n'est pas un objet local, a déjà été marshalé, ou bien la méthode en cours a déjà été appelée.
Au moins un des appelants à un niveau plus élevé dans la pile des appels n'a pas l'autorisation de configuration des types et des canaux de communication à distance.
Exemples
L’exemple de code suivant montre comment définir l’URI qui sera utilisé par la méthode lors du Marshal marshaling de l’objet spécifié.
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
Remarques
L’URI défini par la méthode actuelle est utilisé lors du marshaling de l’objet donné.
Après le marshaling, l’URI de l’objet spécifié est défini sur la chaîne dans le uri
paramètre ajouté au Guid de l’objet actuel AppDomain.
Si l’application actuelle écoute sur un port HTTP, la chaîne spécifiée dans le uri
paramètre et la uri
chaîne ajoutée au de la Guid route actuelle AppDomain vers l’objet spécifié. Par exemple, si l’application écoute sur le port HTTP 9000, http://localhost:9000/objectUri
, et http://localhost:9000/<appdomainguid>/objectUri
routent vers l’objet spécifié dans le obj
paramètre .