SynchronizationAttribute Classe

Définition

Applique un domaine de synchronisation pour le contexte en cours et tous les contextes qui partagent la même instance.

public ref class SynchronizationAttribute : System::Runtime::Remoting::Contexts::ContextAttribute, System::Runtime::Remoting::Contexts::IContributeClientContextSink, System::Runtime::Remoting::Contexts::IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Serializable]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeServerContextSink
    interface IContributeClientContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeServerContextSink
    interface IContributeClientContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeServerContextSink
    interface IContributeClientContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeClientContextSink
    interface IContributeServerContextSink
Public Class SynchronizationAttribute
Inherits ContextAttribute
Implements IContributeClientContextSink, IContributeServerContextSink
Héritage
SynchronizationAttribute
Attributs
Implémente

Exemples

L’exemple de code suivant illustre l’utilisation de l’objet SynchronizationAttribute. Pour obtenir l’exemple de code complet, consultez l’exemple de classe AsyncResult .

// Context-bound type with the Synchronization context attribute.

[Synchronization]
public ref class SampleSynchronized: public ContextBoundObject
{
public:

   // A method that does some work, and returns the square of the given number.
   int Square( int i )
   {
      Console::Write( "The hash of the thread executing " );
      Console::WriteLine( "SampleSynchronized::Square is: {0}", Thread::CurrentThread->GetHashCode() );
      return i * i;
   }

};
// Context-bound type with the Synchronization context attribute.
[Synchronization()]
public class SampleSynchronized : ContextBoundObject {

    // A method that does some work, and returns the square of the given number.
    public int Square(int i)  {

        Console.Write("The hash of the thread executing ");
        Console.WriteLine("SampleSynchronized.Square is: {0}",
                             Thread.CurrentThread.GetHashCode());
        return i*i;
    }
}
' Context-bound type with the Synchronization context attribute.
<Synchronization()> Public Class SampleSynchronized
   Inherits ContextBoundObject
   
   ' A method that does some work, and returns the square of the given number.
   Public Function Square(i As Integer) As Integer
      
      Console.Write("The hash of the thread executing ")
      Console.WriteLine("SampleSynchronized.Square is: {0}", Thread.CurrentThread.GetHashCode())
      Return i * i
   End Function 

End Class

Remarques

Lorsque cet attribut est appliqué à un objet, un seul thread peut être exécuté dans tous les contextes qui partagent une instance de cette propriété. Cela est effectué en contribuant aux récepteurs qui interceptent et sérialisent les appels entrants pour les contextes respectifs. Si la propriété est marquée pour la réentrerie, les légendes sont interceptées également. L’interception de légende permet à d’autres threads en attente d’entrer dans le domaine de synchronisation pour un débit maximal.

Notes

Il existe deux classes nommées SynchronizationAttribute : une dans l’espace System.Runtime.Remoting.Contexts de noms et l’autre dans l’espace de System.EnterpriseServices noms. La System.EnterpriseServices.SynchronizationAttribute classe prend uniquement en charge les appels synchrones et peut être utilisée uniquement avec les composants serviced. Les System.Runtime.Remoting.Contexts.SynchronizationAttribute appels synchrones et asynchrones sont pris en charge et peuvent être utilisés uniquement avec des objets liés au contexte. (Pour plus d’informations sur les objets liés au contexte, consultez la ContextBoundObject classe.)

Notes

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 n’a pas d’autorisation d’infrastructure. Pour plus d’informations sur les demandes de sécurité, consultez Demandes de liaison et demandes d’héritage.

Constructeurs

SynchronizationAttribute()

Initialise une nouvelle instance de la classe SynchronizationAttribute avec les valeurs par défaut.

SynchronizationAttribute(Boolean)

Initialise une autre instance de la classe SynchronizationAttribute avec une valeur booléenne indiquant si une nouvelle entrée est requise.

SynchronizationAttribute(Int32)

Initialise une nouvelle instance de la classe SynchronizationAttribute avec un indicateur précisant le comportement de l'objet auquel cet attribut est appliqué.

SynchronizationAttribute(Int32, Boolean)

Initialise une nouvelle instance de la classe SynchronizationAttribute avec un indicateur précisant le comportement de l'objet auquel cet attribut est appliqué et une valeur booléenne indiquant si une nouvelle entrée est requise.

Champs

AttributeName

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Indique le nom de l'attribut de contexte.

(Hérité de ContextAttribute)
NOT_SUPPORTED

Indique que la classe à laquelle cet attribut est appliqué ne peut pas être créée dans un contexte avec synchronisation. Ce champ est constant.

REQUIRED

Indique que la classe à laquelle cet attribut est appliqué doit être créée dans un contexte avec synchronisation. Ce champ est constant.

REQUIRES_NEW

Indique que la classe à laquelle cet attribut est appliqué doit à chaque fois être créée dans un contexte avec une nouvelle instance de la propriété de synchronisation. Ce champ est constant.

SUPPORTED

Indique que la classe à laquelle cet attribut est appliqué n'est pas dépendante de l'éventuelle synchronisation du contexte. Ce champ est constant.

Propriétés

IsReEntrant

Obtient ou définit si une valeur booléenne indiquant si une nouvelle entrée est requise.

Locked

Obtient ou définit une valeur booléenne indiquant si Context implémentant cette instance de SynchronizationAttribute est verrouillé.

Name

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Obtient le nom de l'attribut de contexte.

(Hérité de ContextAttribute)
TypeId

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

(Hérité de Attribute)

Méthodes

Equals(Object)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Retourne une valeur booléenne indiquant si cette instance est égale à l'objet spécifié.

(Hérité de ContextAttribute)
Freeze(Context)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Appelé lorsque le contexte est figé.

(Hérité de ContextAttribute)
GetClientContextSink(IMessageSink)

Crée un récepteur CallOut et chaîne celui-ci devant la chaîne de récepteurs fournie à la limite du contexte sur l'extrémité cliente d'un appel de communication à distance.

GetHashCode()

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Retourne le code de hachage de cette instance de ContextAttribute.

(Hérité de ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Ajoute la propriété de contexte Synchronized au IConstructionCallMessage spécifié.

GetServerContextSink(IMessageSink)

Crée un récepteur de distribution synchronisée et chaîne celui-ci devant la chaîne de récepteurs fournie à la limite du contexte sur l'extrémité serveur d'un appel de communication à distance.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsContextOK(Context, IConstructionCallMessage)

Retourne une valeur booléenne indiquant si le paramètre de contexte répond aux besoins de l'attribut de contexte.

IsDefaultAttribute()

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)
IsNewContextOK(Context)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Retourne une valeur booléenne indiquant si la propriété de contexte est compatible avec le nouveau contexte.

(Hérité de ContextAttribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_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)
_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)
_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)

S’applique à