Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

ProxyAttribute classe

 

Date de publication : novembre 2016

Indique qu’un type d’objet nécessite un proxy personnalisé.

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

System.Object
  System.Attribute
    System.Runtime.Remoting.Proxies.ProxyAttribute

[SecurityCriticalAttribute]
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false, 
	Inherited = true)]
[ComVisibleAttribute(true)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
	Flags = SecurityPermissionFlag.Infrastructure)]
public class ProxyAttribute : Attribute, IContextAttribute

NomDescription
System_CAPS_pubmethodProxyAttribute()

Initialise une nouvelle instance de la classe ProxyAttribute avec des valeurs par défaut.

NomDescription
System_CAPS_pubpropertyTypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.(Hérité de Attribute.)

NomDescription
System_CAPS_pubmethodCreateInstance(Type)

Crée un non initialisé MarshalByRefObject ou un proxy transparent, selon que le type spécifié peut exister dans le contexte actuel.

System_CAPS_pubmethodCreateProxy(ObjRef, Type, Object, Context)

Crée une instance d’un proxy de communication à distance pour un objet distant décrit par le ObjRef, et situé sur le serveur.

System_CAPS_pubmethodEquals(Object)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Retourne une valeur qui indique si cette instance est égale à un objet spécifié.(Hérité de Attribute.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Retourne le code de hachage de cette instance.(Hérité de Attribute.)

System_CAPS_pubmethodGetPropertiesForNewContext(IConstructionCallMessage)

Obtient les propriétés d’un nouveau contexte.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodIsContextOK(Context, IConstructionCallMessage)

Vérifie le contexte spécifié.

System_CAPS_pubmethodIsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.(Hérité de Attribute.)

System_CAPS_pubmethodMatch(Object)

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance équivaut à un objet spécifié.(Hérité de Attribute.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.(Hérité de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.(Hérité de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).(Hérité de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.(Hérité de Attribute.)

Appliquer l’attribut en cours aux types qui nécessitent des proxies personnalisés. Vous pouvez utiliser la classe ProxyAttribute pour intercepter le new (New en Visual Basic) en dérivant de ProxyAttribute et en plaçant l’attribut sur un enfant de la déclaration de ContextBoundObject. (Placer l’attribut proxy sur un enfant de MarshalByRefObject n’est pas pris en charge.)

System_CAPS_noteRemarque

Cette classe effectue une demande de liaison et une demande d’héritage au niveau de la classe. Un SecurityException est levée lorsque l’appelant immédiat ou la classe dérivée ne dispose pas d’autorisation d’infrastructure. Pour plus d’informations sur les demandes de sécurité, consultez la page Demandes de liaison et les demandes d’héritage.

[AttributeUsage(AttributeTargets.Class)]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.Infrastructure)]
public class MyProxyAttribute : ProxyAttribute
{
   public MyProxyAttribute()
   {
   }
   // Create an instance of ServicedComponentProxy
   public override MarshalByRefObject CreateInstance(Type serverType)
   {  
      return base.CreateInstance(serverType);
   }
   public override RealProxy CreateProxy(ObjRef objRef1,
      Type serverType,
      object serverObject,
      Context serverContext)
   {
      MyProxy myCustomProxy = new MyProxy(serverType);
      if(serverContext != null)
      {
         RealProxy.SetStubData(myCustomProxy,serverContext);
      }
      if((!serverType.IsMarshalByRef)&&(serverContext == null))
      {
         throw new RemotingException("Bad Type for CreateProxy");
      }
      return myCustomProxy;
   }
}
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
[MyProxyAttribute]
public class CustomServer :ContextBoundObject
{
   public CustomServer()
   {
      Console.WriteLine("CustomServer Base Class constructor called");
   }
   public void HelloMethod(string str)
   {
      Console.WriteLine("HelloMethod of Server is invoked with message : " + str);
   }
}

SecurityPermission

For operating with infrastructure code. Demand value: F:System.Security.Permissions.SecurityAction.LinkDemand; Permission Value: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure

SecurityPermission

For operating with infrastructure code. Demand value: F:System.Security.Permissions.SecurityAction.InheritanceDemand; Permission Value: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure

.NET Framework
Disponible depuis 1.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: