SynchronizationAttribute Klasa

Definicja

Wymusza domenę synchronizacji dla bieżącego kontekstu i wszystkich kontekstów, które współużytkują to samo wystąpienie.

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
Dziedziczenie
SynchronizationAttribute
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano użycie obiektu SynchronizationAttribute. Pełny przykładowy kod można znaleźć w przykładzie AsyncResult dla klasy .

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

Uwagi

Po zastosowaniu tego atrybutu do obiektu można wykonać tylko jeden wątek we wszystkich kontekstach, które współużytkuje wystąpienie tej właściwości. Odbywa się to przez współtworzenia ujścia, które przechwytują i serializują przychodzące wywołania dla odpowiednich kontekstów. Jeśli właściwość jest oznaczona do ponownego wyjęcia, wywołania również są przechwytywane. Przechwytywanie objaśnień umożliwia innym wątkom oczekującym wejście do domeny synchronizacji w celu uzyskania maksymalnej przepływności.

Uwaga / Notatka

Istnieją dwie klasy o nazwie SynchronizationAttribute : jedna w System.Runtime.Remoting.Contexts przestrzeni nazw, a druga w System.EnterpriseServices przestrzeni nazw. Klasa System.EnterpriseServices.SynchronizationAttribute obsługuje tylko wywołania synchroniczne i może być używana tylko ze składnikami usługi. Obiekt System.Runtime.Remoting.Contexts.SynchronizationAttribute obsługuje zarówno wywołania synchroniczne, jak i asynchroniczne, i może być używany tylko z obiektami powiązanymi kontekstu. (Aby uzyskać więcej informacji na temat obiektów powiązanych z kontekstem, zobacz klasę ContextBoundObject ).

Uwaga / Notatka

Ta klasa sprawia, że zapotrzebowanie na łącza i zapotrzebowanie na dziedziczenie na poziomie klasy. Element SecurityException jest zgłaszany, gdy bezpośredni obiekt wywołujący lub klasa pochodna nie ma uprawnień do infrastruktury.

Konstruktory

Nazwa Opis
SynchronizationAttribute()

Inicjuje SynchronizationAttribute nowe wystąpienie klasy z wartościami domyślnymi.

SynchronizationAttribute(Boolean)

Inicjuje nowe wystąpienie SynchronizationAttribute klasy z wartością logiczną wskazującą, czy wymagana jest ponowna zmiana.

SynchronizationAttribute(Int32, Boolean)

Inicjuje nowe wystąpienie SynchronizationAttribute klasy z flagą wskazującą zachowanie obiektu, do którego zastosowano ten atrybut, oraz wartość logiczną wskazującą, czy wymagana jest ponowna zmiana.

SynchronizationAttribute(Int32)

Inicjuje nowe wystąpienie SynchronizationAttribute klasy z flagą wskazującą zachowanie obiektu, do którego jest stosowany ten atrybut.

Pola

Nazwa Opis
AttributeName

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Wskazuje nazwę atrybutu kontekstu.

(Odziedziczone po ContextAttribute)
NOT_SUPPORTED

Wskazuje, że nie można utworzyć klasy, do której zastosowano ten atrybut, w kontekście, który ma synchronizację. To pole jest stałe.

REQUIRED

Wskazuje, że klasa, do której zastosowano ten atrybut, musi zostać utworzona w kontekście z synchronizacją. To pole jest stałe.

REQUIRES_NEW

Wskazuje, że klasa, do której zastosowano ten atrybut, musi zostać utworzona w kontekście z nowym wystąpieniem właściwości synchronizacji za każdym razem. To pole jest stałe.

SUPPORTED

Wskazuje, że klasa, do której zastosowano ten atrybut, nie zależy od tego, czy kontekst ma synchronizację. To pole jest stałe.

Właściwości

Nazwa Opis
IsReEntrant

Pobiera lub ustawia wartość logiczną wskazującą, czy wymagana jest ponowna zmiana.

Locked

Pobiera lub ustawia wartość logiczną wskazującą Context , czy implementowanie tego wystąpienia SynchronizationAttribute jest zablokowane.

Name

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Pobiera nazwę atrybutu kontekstu.

(Odziedziczone po ContextAttribute)
TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)

Metody

Nazwa Opis
Equals(Object)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca wartość logiczną wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po ContextAttribute)
Freeze(Context)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Wywoływana, gdy kontekst jest zamrożony.

(Odziedziczone po ContextAttribute)
GetClientContextSink(IMessageSink)

Tworzy ujście objaśnienia i tworzy łańcuch przed podanym łańcuchem ujścia w granicach kontekstu na końcu wywołania komunikacji telefonicznej klienta.

GetHashCode()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca kod skrótu dla tego wystąpienia klasy ContextAttribute.

(Odziedziczone po ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Synchronized Dodaje właściwość kontekstu do określonego IConstructionCallMessageelementu .

GetServerContextSink(IMessageSink)

Tworzy zsynchronizowany ujście wysyłki i tworzy łańcuch przed podanym łańcuchem ujścia w granicach kontekstu na końcu serwera wywołania komunikacji telefonicznej.

GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsContextOK(Context, IConstructionCallMessage)

Zwraca wartość logiczną wskazującą, czy parametr kontekstu spełnia wymagania atrybutu kontekstu.

IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
IsNewContextOK(Context)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca wartość logiczną wskazującą, czy właściwość kontekstu jest zgodna z nowym kontekstem.

(Odziedziczone po ContextAttribute)
Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy