SynchronizationAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 |
| 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) |