MarshalByRefObject, classe (System)

Bibliothèque de classes .NET Framework 
MarshalByRefObject, classe 

Permet l'accès aux objets au-delà des limites de domaine d'application dans les applications qui prennent en charge l'accès distant.

Espace de noms : System
Assembly : mscorlib (dans mscorlib.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class MarshalByRefObject


Visual Basic (Utilisation)
Dim instance As MarshalByRefObject


C#
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class MarshalByRefObject


C++
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class MarshalByRefObject abstract


J#
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class MarshalByRefObject


JScript
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class MarshalByRefObject
NotesNotes

Un domaine d'application est une partition dans un processus de système d'exploitation dans laquelle résident une ou plusieurs applications. Les objets d'un même domaine d'application communiquent entre eux directement. Les objets contenus dans différents domaines d'application communiquent en transportant des copies d'objets au-delà des limites de domaine d'application ou en utilisant un proxy pour échanger des messages.

MarshalByRefObject est la classe de base pour les objets qui communiquent au-delà des limites de domaine d'application en échangeant des messages à l'aide d'un proxy. Les objets qui n'héritent pas de MarshalByRefObject sont implicitement des objets marshalés-par-valeur. Lorsqu'une application distante fait référence à un objet marshalé-par-valeur, une copie de l'objet est passée au-delà des limites de domaine d'application.

Les objets MarshalByRefObject sont directement accessibles à l'intérieur des limites du domaine d'application local. Lorsqu'une application dans un domaine d'application distant accède à MarshalByRefObject pour la première fois, un proxy est passé à l'application distante. Les appels suivants sur le proxy sont à nouveau marshalés vers l'objet qui réside dans le domaine d'application local.

Les types doivent hériter de MarshalByRefObject lorsque le type est utilisé au-delà des limites de domaine d'application, et l'état de l'objet ne doit pas être copié, car les membres de l'objet ne sont pas utilisables en dehors du domaine d'application dans lequel ils ont été créés.

ExempleExemple

L'exemple suivant illustre une classe dérivée de MarshalByRefObject utilisée ultérieurement dans le cadre de l'accès distant.



Visual Basic
Imports System
Imports System.Runtime.Remoting
Imports System.Security.Permissions

Public Class SetObjectUriForMarshalTest
    
    Class TestClass
        Inherits MarshalByRefObject
    End Class

    <SecurityPermission(SecurityAction.LinkDemand)> _
    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


C#
using System;
using System.Runtime.Remoting;
using System.Security.Permissions;

public class SetObjectUriForMarshalTest  {

    class TestClass : MarshalByRefObject {
    }

    [SecurityPermission(SecurityAction.LinkDemand)]
    public static void Main()  {

        TestClass obj = new TestClass();    

        RemotingServices.SetObjectUriForMarshal(obj, "testUri");
        RemotingServices.Marshal(obj);

        Console.WriteLine(RemotingServices.GetObjectUri(obj));
    }
}


C++
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::Infrastructure)]   
   static void Main()
   {
      TestClass^ obj = gcnew TestClass;
      RemotingServices::SetObjectUriForMarshal( obj,  "testUri" );
      RemotingServices::Marshal(obj);
      Console::WriteLine( RemotingServices::GetObjectUri( obj ) );
   }

};
Hiérarchie d'héritageHiérarchie d'héritage
System.Object
  System.MarshalByRefObject
     Classes dérivées
Sécurité des threadsSécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.marshalbyrefobject.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

7 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4988
Document créé le 30/10/06 02:41, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.marshalbyrefobject.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,54 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Il n'y a point de génie sans un grain de folie.

Aristote
 
l'infobrol
Nous sommes le Vendredi 01 Juin 2012, 04:43, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)