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
[<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
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żytkować wystąpienie tej właściwości. Odbywa się to przez współtworzenia ujścia, które przechwytują i serializują przychodzące wywołania odpowiednich kontekstów. Jeśli właściwość jest oznaczona do ponownego wejścia, wywołania są również przechwytywane. Przechwytywanie objaśnień umożliwia innym wątkom oczekującym wprowadzanie domeny synchronizacji w celu uzyskania maksymalnej przepływności.

Uwaga

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 synchroniczne wywołania i może być używana tylko ze składnikami usługi. Funkcja System.Runtime.Remoting.Contexts.SynchronizationAttribute obsługuje zarówno synchroniczne, jak i asynchroniczne wywołania i może być używana tylko z obiektami powiązanymi kontekstem. (Aby uzyskać więcej informacji na temat obiektów powiązanych z kontekstem, zobacz klasę ContextBoundObject ).

Uwaga

Ta klasa sprawia, że żądanie połączenia i zapotrzebowanie na dziedziczenie na poziomie klasy. Element jest SecurityException zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Łączenie żądań i żądań dziedziczenia.

Konstruktory

SynchronizationAttribute()

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

SynchronizationAttribute(Boolean)

Inicjuje SynchronizationAttribute nowe wystąpienie klasy z wartością logiczną wskazującą, czy wymagane jest ponowne wjechanie.

SynchronizationAttribute(Int32)

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

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 wymagane jest ponowne wyjęcie.

Pola

AttributeName

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

Określa 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, który ma 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

IsReEntrant

Pobiera lub ustawia wartość logiczną wskazującą, czy ponowne wjechanie jest wymagane.

Locked

Pobiera lub ustawia wartość logiczną wskazującą, Context czy zaimplementowanie 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 Attributeelementu .

(Odziedziczone po Attribute)

Metody

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 podanemu 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 zablokowany.

(Odziedziczone po ContextAttribute)
GetClientContextSink(IMessageSink)

Tworzy ujście objaśnienia i tworzy łańcuch przed podanym łańcuchem ujściów na granicy kontekstu na końcu połączenia komunikacji telefonicznej klienta.

GetHashCode()

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

Zwraca skrótu dla tego wystąpienia 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 ujścia przed podanym łańcuchem ujściów w granicach kontekstu na końcu serwera wywołania komunikacji telefonicznej.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsContextOK(Context, IConstructionCallMessage)

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

IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną 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 przesłonięciu 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 Objectelementu .

(Odziedziczone po Object)
ToString()

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

(Odziedziczone po Object)

Jawne implementacje interfejsu

_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 dla obiektu, który może służyć do pobierania 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)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy