Freigeben über


SynchronizationAttribute Klasse

Definition

Erzwingt eine Synchronisierungsdomäne für den aktuellen Kontext und alle Kontexte, die dieselbe Instanz verwenden.

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
Vererbung
SynchronizationAttribute
Attribute
Implementiert

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der SynchronizationAttribute. Den vollständigen Beispielcode finden Sie im Beispiel für die AsyncResult Klasse.

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

Hinweise

Wenn dieses Attribut auf ein Objekt angewendet wird, kann nur ein Thread in allen Kontexten ausgeführt werden, die eine Instanz dieser Eigenschaft gemeinsam verwenden. Dazu werden Senken beitragen, die eingehende Anrufe für die jeweiligen Kontexte abfangen und serialisieren. Wenn die Eigenschaft für den Erneuten Versuch markiert ist, werden auch Legenden abgefangen. Die Legendeninterception ermöglicht es anderen Wartethreads, die Synchronisierungsdomäne für den maximalen Durchsatz einzugeben.

Hinweis

Es gibt zwei Klassen namens SynchronizationAttribute : eine im System.Runtime.Remoting.Contexts Namespace und die andere im System.EnterpriseServices Namespace. Die System.EnterpriseServices.SynchronizationAttribute Klasse unterstützt nur synchrone Aufrufe und kann nur mit dienstierten Komponenten verwendet werden. Die System.Runtime.Remoting.Contexts.SynchronizationAttribute unterstützung sowohl synchrone als auch asynchrone Aufrufe und kann nur mit kontextgebundenen Objekten verwendet werden. (Weitere Informationen zu kontextgebundenen Objekten finden Sie in der ContextBoundObject Klasse.)

Hinweis

Diese Klasse macht eine Verknüpfungsnachfrage und eine Vererbungsnachfrage auf Klassenebene. Ein SecurityException Fehler wird ausgelöst, wenn entweder der direkte Aufrufer oder die abgeleitete Klasse keine Infrastrukturberechtigung besitzt. Ausführliche Informationen zu Sicherheitsanforderungen finden Sie unter Linkanforderungen.

Konstruktoren

Name Beschreibung
SynchronizationAttribute()

Initialisiert eine neue Instanz der SynchronizationAttribute Klasse mit Standardwerten.

SynchronizationAttribute(Boolean)

Initialisiert eine neue Instanz der SynchronizationAttribute Klasse mit einem booleschen Wert, der angibt, ob die Wiederholung erforderlich ist.

SynchronizationAttribute(Int32, Boolean)

Initialisiert eine neue Instanz der SynchronizationAttribute Klasse mit einem Flag, das das Verhalten des Objekts angibt, auf das dieses Attribut angewendet wird, und ein boolescher Wert, der angibt, ob ein erneuter Versuch erforderlich ist.

SynchronizationAttribute(Int32)

Initialisiert eine neue Instanz der SynchronizationAttribute Klasse mit einem Flag, das das Verhalten des Objekts angibt, auf das dieses Attribut angewendet wird.

Felder

Name Beschreibung
AttributeName

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Namen des Kontextattributes an.

(Geerbt von ContextAttribute)
NOT_SUPPORTED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, nicht in einem Kontext mit Synchronisierung erstellt werden kann. Dieses Feld ist konstant.

REQUIRED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, in einem Kontext mit Synchronisierung erstellt werden muss. Dieses Feld ist konstant.

REQUIRES_NEW

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, in einem Kontext mit einer neuen Instanz der Synchronisierungseigenschaft jedes Mal erstellt werden muss. Dieses Feld ist konstant.

SUPPORTED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, nicht von der Synchronisierung des Kontexts abhängig ist. Dieses Feld ist konstant.

Eigenschaften

Name Beschreibung
IsReEntrant

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob ein Wiederholungsversuche erforderlich ist.

Locked

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Context Implementierung dieser Instanz SynchronizationAttribute gesperrt ist.

Name

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft den Namen des Kontextattributes ab.

(Geerbt von ContextAttribute)
TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt einen booleschen Wert zurück, der angibt, ob diese Instanz dem angegebenen Objekt entspricht.

(Geerbt von ContextAttribute)
Freeze(Context)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Wird aufgerufen, wenn der Kontext fixiert ist.

(Geerbt von ContextAttribute)
GetClientContextSink(IMessageSink)

Erstellt eine CallOut-Spüle und verkettet sie vor der bereitgestellten Kette von Senken an der Kontextgrenze auf dem Clientende eines Remotinganrufs.

GetHashCode()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Hashcode für diese Instanz von ContextAttribute.

(Geerbt von ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Fügt der angegebenen IConstructionCallMessageEigenschaft die Synchronized Kontexteigenschaft hinzu.

GetServerContextSink(IMessageSink)

Erstellt eine synchronisierte Verteilerspüle und ketten sie vor der bereitgestellten Kette von Senken an der Kontextgrenze auf dem Serverende eines Remotinganrufs.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsContextOK(Context, IConstructionCallMessage)

Gibt einen booleschen Wert zurück, der angibt, ob der Kontextparameter die Anforderungen des Kontextattributes erfüllt.

IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
IsNewContextOK(Context)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt einen booleschen Wert zurück, der angibt, ob die Kontexteigenschaft mit dem neuen Kontext kompatibel ist.

(Geerbt von ContextAttribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für: