Partager via


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Méthode

Définition

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

obj
MarshalByRefObject

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 .

S’applique à

Voir aussi