RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Méthode

Définition

Définit l’URI de l’appel suivant à la Marshal(MarshalByRefObject) méthode.

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 à affecter à l’objet spécifié.

Exceptions

obj n’est pas un objet local, a déjà été marshalé, ou la méthode actuelle a déjà été appelée.

Au moins un des appelants plus haut dans la pile d’appels n’est pas autorisé à configurer les types et 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 du uri paramètre ajouté à l’objet Guid actif 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 à l’itinéraire Guid actuel AppDomain à l’objet spécifié. Par exemple, si l’application écoute sur le port HTTP 9000, les deux http://localhost:9000/objectUriet http://localhost:9000/<appdomainguid>/objectUri routent vers l’objet spécifié dans le obj paramètre.

S’applique à

Voir aussi