﻿<?xml version="1.0" encoding="utf-8"?><Type Name="SynchronizationAttribute" FullName="System.Runtime.Remoting.Contexts.SynchronizationAttribute"><TypeSignature Maintainer="auto" Language="C#" Value="public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink" /><TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit SynchronizationAttribute extends System.Runtime.Remoting.Contexts.ContextAttribute implements class System.Runtime.Remoting.Contexts.IContributeClientContextSink, class System.Runtime.Remoting.Contexts.IContributeServerContextSink" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement><Base><BaseTypeName>System.Runtime.Remoting.Contexts.ContextAttribute</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.Runtime.Remoting.Contexts.IContributeClientContextSink</InterfaceName></Interface><Interface><InterfaceName>System.Runtime.Remoting.Contexts.IContributeServerContextSink</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>System.AttributeUsage(System.AttributeTargets.Class)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When this attribute is applied to an object, only one thread can be executing in all contexts that share an instance of this property. This is done by contributing sinks that intercept and serialize incoming calls for the respective contexts. If the property is marked for reentry, then callouts are intercepted too. The callout interception allows other waiting threads to enter the synchronization domain for maximal throughput.</para><block subset="none" type="note"><para>There are two classes named SynchronizationAttribute : one in the <see cref="N:System.Runtime.Remoting.Contexts" /> namespace, and the other in the <see cref="N:System.EnterpriseServices" /> namespace. The <see cref="T:System.EnterpriseServices.SynchronizationAttribute" /> class supports only synchronous calls, and can be used only with serviced components. (For more information on serviced components, see <format type="text/html"><a href="5133A620-9C8C-47BD-8E36-130E722FE463">[&lt;topic://cpconservicedcomponentoverview&gt;]</a></format>.) The <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> supports both synchronous and asynchronous calls, and can be used only with context bound objects. (For more information on context bound objects, see the <see cref="T:System.ContextBoundObject" /> class.) </para></block><block subset="none" type="note"><para>This class makes a link demand and an inheritance demand at the class level. A <see cref="T:System.Security.SecurityException" /> is thrown when either the immediate caller or the derived class does not have infrastructure permission. For details about security demands, see <format type="text/html"><a href="A33FD5F9-2DE9-4653-A4F0-D9DF25082C4D">[&lt;topic://cpconLinkDemands&gt;]</a></format> and <format type="text/html"><a href="28B9ADBB-8F08-4F10-B856-DBF59EB932D9">[&lt;topic://cpconInheritanceDemands&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Enforces a synchronization domain for the current context and all contexts that share the same instance.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public SynchronizationAttribute ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters /><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> class with default values.</para></summary></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public SynchronizationAttribute (bool reEntrant);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(bool reEntrant) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="reEntrant" Type="System.Boolean" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If reentry is required, callouts out of the <see cref="T:System.Runtime.Remoting.Contexts.Context" /> to which the current attribute is applied must be intercepted and serialized.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> class with a Boolean value indicating whether reentry is required.</para></summary><param name="reEntrant"><attribution license="cc4" from="Microsoft" modified="false" />A Boolean value indicating whether reentry is required. </param></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public SynchronizationAttribute (int flag);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 flag) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="flag" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <paramref name="flag" /> parameter must be either <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.NOT_SUPPORTED" />, <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.SUPPORTED" />, <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.REQUIRED" />, or <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.REQUIRES_NEW" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> class with a flag indicating the behavior of the object to which this attribute is applied.</para></summary><param name="flag"><attribution license="cc4" from="Microsoft" modified="false" />An integer value indicating the behavior of the object to which this attribute is applied. </param></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public SynchronizationAttribute (int flag, bool reEntrant);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 flag, bool reEntrant) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="flag" Type="System.Int32" /><Parameter Name="reEntrant" Type="System.Boolean" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <paramref name="flag" /> parameter must be either <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.NOT_SUPPORTED" />, <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.SUPPORTED" />, <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.REQUIRED" />, or <see cref="F:System.Runtime.Remoting.Contexts.SynchronizationAttribute.REQUIRES_NEW" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> class with a flag indicating the behavior of the object to which this attribute is applied, and a Boolean value indicating whether reentry is required.</para></summary><param name="flag"><attribution license="cc4" from="Microsoft" modified="false" />An integer value indicating the behavior of the object to which this attribute is applied. </param><param name="reEntrant"><attribution license="cc4" from="Microsoft" modified="false" />true if reentry is required, and callouts must be intercepted and serialized; otherwise, false. </param></Docs></Member><Member MemberName="GetClientContextSink"><MemberSignature Language="C#" Value="public virtual System.Runtime.Remoting.Messaging.IMessageSink GetClientContextSink (System.Runtime.Remoting.Messaging.IMessageSink nextSink);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Runtime.Remoting.Messaging.IMessageSink GetClientContextSink(class System.Runtime.Remoting.Messaging.IMessageSink nextSink) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Messaging.IMessageSink</ReturnType></ReturnValue><Parameters><Parameter Name="nextSink" Type="System.Runtime.Remoting.Messaging.IMessageSink" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The current method is an implementation of <see cref="M:System.Runtime.Remoting.Contexts.IContributeClientContextSink.GetClientContextSink(System.Runtime.Remoting.Messaging.IMessageSink)" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Creates a CallOut sink and chains it in front of the provided chain of sinks at the context boundary on the client end of a remoting call.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The composite sink chain with the new CallOut sink.</para></returns><param name="nextSink"><attribution license="cc4" from="Microsoft" modified="false" />The chain of sinks composed so far. </param></Docs></Member><Member MemberName="GetPropertiesForNewContext"><MemberSignature Language="C#" Value="public override void GetPropertiesForNewContext (System.Runtime.Remoting.Activation.IConstructionCallMessage ctorMsg);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void GetPropertiesForNewContext(class System.Runtime.Remoting.Activation.IConstructionCallMessage ctorMsg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="ctorMsg" Type="System.Runtime.Remoting.Activation.IConstructionCallMessage" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds the Synchronized context property to the specified <see cref="T:System.Runtime.Remoting.Activation.IConstructionCallMessage" />.</para></summary><param name="ctorMsg"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Activation.IConstructionCallMessage" /> to which to add the property. </param></Docs></Member><Member MemberName="GetServerContextSink"><MemberSignature Language="C#" Value="public virtual System.Runtime.Remoting.Messaging.IMessageSink GetServerContextSink (System.Runtime.Remoting.Messaging.IMessageSink nextSink);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Runtime.Remoting.Messaging.IMessageSink GetServerContextSink(class System.Runtime.Remoting.Messaging.IMessageSink nextSink) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Messaging.IMessageSink</ReturnType></ReturnValue><Parameters><Parameter Name="nextSink" Type="System.Runtime.Remoting.Messaging.IMessageSink" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The current method is an implementation of <see cref="M:System.Runtime.Remoting.Contexts.IContributeServerContextSink.GetServerContextSink(System.Runtime.Remoting.Messaging.IMessageSink)" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Creates a synchronized dispatch sink and chains it in front of the provided chain of sinks at the context boundary on the server end of a remoting call.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The composite sink chain with the new synchronized dispatch sink.</para></returns><param name="nextSink"><attribution license="cc4" from="Microsoft" modified="false" />The chain of sinks composed so far. </param></Docs></Member><Member MemberName="IsContextOK"><MemberSignature Language="C#" Value="public override bool IsContextOK (System.Runtime.Remoting.Contexts.Context ctx, System.Runtime.Remoting.Activation.IConstructionCallMessage msg);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool IsContextOK(class System.Runtime.Remoting.Contexts.Context ctx, class System.Runtime.Remoting.Activation.IConstructionCallMessage msg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="ctx" Type="System.Runtime.Remoting.Contexts.Context" /><Parameter Name="msg" Type="System.Runtime.Remoting.Activation.IConstructionCallMessage" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns a Boolean value indicating whether the context parameter meets the context attribute's requirements.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the passed in context is OK; otherwise, false.</para></returns><param name="ctx"><attribution license="cc4" from="Microsoft" modified="false" />The context to check. </param><param name="msg"><attribution license="cc4" from="Microsoft" modified="false" />Information gathered at construction time of the context bound object marked by this attribute. The <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> can inspect, add to, and remove properties from the context while determining if the context is acceptable to it. </param></Docs></Member><Member MemberName="IsReEntrant"><MemberSignature Language="C#" Value="public virtual bool IsReEntrant { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool IsReEntrant" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added: an object of type 'bool'</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If reentry is required, callouts out of the <see cref="T:System.Runtime.Remoting.Contexts.Context" /> to which the current attribute is applied must be intercepted and serialized.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a Boolean value indicating whether reentry is required.</para></summary></Docs></Member><Member MemberName="Locked"><MemberSignature Language="C#" Value="public virtual bool Locked { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool Locked" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When a synchronized <see cref="T:System.Runtime.Remoting.Contexts.Context" /> is locked, only the thread currently executing in it has access to objects in the <see cref="T:System.Runtime.Remoting.Contexts.Context" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a Boolean value indicating whether the <see cref="T:System.Runtime.Remoting.Contexts.Context" /> implementing this instance of <see cref="T:System.Runtime.Remoting.Contexts.SynchronizationAttribute" /> is locked.</para></summary></Docs></Member><Member MemberName="NOT_SUPPORTED"><MemberSignature Language="C#" Value="public const int NOT_SUPPORTED = 1;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 NOT_SUPPORTED = (1)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><MemberValue>1</MemberValue><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that the class to which this attribute is applied cannot be created in a context that has synchronization. This field is constant.</para></summary></Docs></Member><Member MemberName="REQUIRED"><MemberSignature Language="C#" Value="public const int REQUIRED = 4;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 REQUIRED = (4)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><MemberValue>4</MemberValue><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that the class to which this attribute is applied must be created in a context that has synchronization. This field is constant.</para></summary></Docs></Member><Member MemberName="REQUIRES_NEW"><MemberSignature Language="C#" Value="public const int REQUIRES_NEW = 8;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 REQUIRES_NEW = (8)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><MemberValue>8</MemberValue><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that the class to which this attribute is applied must be created in a context with a new instance of the synchronization property each time. This field is constant.</para></summary></Docs></Member><Member MemberName="SUPPORTED"><MemberSignature Language="C#" Value="public const int SUPPORTED = 2;" /><MemberSignature Language="ILAsm" Value=".field public static literal int32 SUPPORTED = (2)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><MemberValue>2</MemberValue><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that the class to which this attribute is applied is not dependent on whether the context has synchronization. This field is constant.</para></summary></Docs></Member></Members></Type>