SynchronizationAttribute Klas

Definitie

Hiermee wordt een synchronisatiedomein afgedwongen voor de huidige context en alle contexten die hetzelfde exemplaar delen.

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
Public Class SynchronizationAttribute
Inherits ContextAttribute
Implements IContributeClientContextSink, IContributeServerContextSink
Overname
SynchronizationAttribute
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u het gebruik van de SynchronizationAttribute. Zie het voorbeeld voor de AsyncResult klasse voor de volledige voorbeeldcode.

// 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

Opmerkingen

Wanneer dit kenmerk wordt toegepast op een object, kan slechts één thread worden uitgevoerd in alle contexten die een exemplaar van deze eigenschap delen. Dit wordt gedaan door sinks bij te dragen die binnenkomende aanroepen voor de respectieve contexten onderscheppen en serialiseren. Als de eigenschap is gemarkeerd voor opnieuw proberen, worden bijschriften ook onderschept. Met het onderscheppen van bijschriften kunnen andere wachtende threads het synchronisatiedomein invoeren voor maximale doorvoer.

Note

Er zijn twee klassen met de naam SynchronizationAttribute : een in de System.Runtime.Remoting.Contexts naamruimte en de andere in de System.EnterpriseServices naamruimte. De System.EnterpriseServices.SynchronizationAttribute klasse ondersteunt alleen synchrone aanroepen en kan alleen worden gebruikt met serviceonderdelen. De System.Runtime.Remoting.Contexts.SynchronizationAttribute functie ondersteunt zowel synchrone als asynchrone aanroepen en kan alleen worden gebruikt met contextgebonden objecten. (Zie de ContextBoundObject klasse voor meer informatie over contextgebonden objecten.)

Note

Deze klasse maakt een koppelingsvraag en een overnamevraag op klasseniveau. Er SecurityException wordt een gegenereerd wanneer de directe aanroeper of de afgeleide klasse geen infrastructuurmachtiging heeft. Zie Koppelingsvereisten en overnamevereisten voor meer informatie over beveiligingsvereisten.

Constructors

Name Description
SynchronizationAttribute()

Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met standaardwaarden.

SynchronizationAttribute(Boolean)

Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een Booleaanse waarde die aangeeft of opnieuw proberen is vereist.

SynchronizationAttribute(Int32, Boolean)

Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een vlag die het gedrag aangeeft van het object waarop dit kenmerk wordt toegepast, en een Booleaanse waarde die aangeeft of opnieuw proberen is vereist.

SynchronizationAttribute(Int32)

Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een vlag die het gedrag aangeeft van het object waarop dit kenmerk wordt toegepast.

Velden

Name Description
AttributeName

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Geeft de naam van het contextkenmerk aan.

(Overgenomen van ContextAttribute)
NOT_SUPPORTED

Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, niet kan worden gemaakt in een context met synchronisatie. Dit veld is constant.

REQUIRED

Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, moet worden gemaakt in een context met synchronisatie. Dit veld is constant.

REQUIRES_NEW

Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, elke keer in een context met een nieuw exemplaar van de synchronisatie-eigenschap moet worden gemaakt. Dit veld is constant.

SUPPORTED

Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, niet afhankelijk is van of de context synchronisatie heeft. Dit veld is constant.

Eigenschappen

Name Description
IsReEntrant

Hiermee wordt een Booleaanse waarde opgehaald of ingesteld die aangeeft of opnieuw proberen is vereist.

Locked

Hiermee wordt een Booleaanse waarde opgehaald of ingesteld die aangeeft of de Context implementatie van SynchronizationAttribute dit exemplaar is vergrendeld.

Name

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Hiermee haalt u de naam van het contextkenmerk op.

(Overgenomen van ContextAttribute)
TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Retourneert een Booleaanse waarde die aangeeft of dit exemplaar gelijk is aan het opgegeven object.

(Overgenomen van ContextAttribute)
Freeze(Context)

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Wordt aangeroepen wanneer de context wordt geblokkeerd.

(Overgenomen van ContextAttribute)
GetClientContextSink(IMessageSink)

Hiermee maakt u een CallOut-sink en koppelt u deze aan de opgegeven keten van sinks aan de contextgrens aan het einde van een externe aanroep.

GetHashCode()

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Retourneert de hashcode voor dit exemplaar van ContextAttribute.

(Overgenomen van ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Hiermee voegt u de Synchronized contexteigenschap toe aan de opgegeven IConstructionCallMessage.

GetServerContextSink(IMessageSink)

Hiermee maakt u een gesynchroniseerde verzendsink en koppelt u deze aan de opgegeven keten van sinks aan de contextgrens aan het einde van een externe aanroep.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsContextOK(Context, IConstructionCallMessage)

Retourneert een Booleaanse waarde die aangeeft of de contextparameter voldoet aan de vereisten van het contextkenmerk.

IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
IsNewContextOK(Context)

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Retourneert een Booleaanse waarde die aangeeft of de contexteigenschap compatibel is met de nieuwe context.

(Overgenomen van ContextAttribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op