IContractBehaviorAttribute Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le contrat pour lequel un attribut qui implémente l'interface IContractBehavior est actif.
public interface class IContractBehaviorAttribute
public interface IContractBehaviorAttribute
type IContractBehaviorAttribute = interface
Public Interface IContractBehaviorAttribute
- Dérivé
Exemples
L'exemple de code suivant suppose une implémentation System.ServiceModel.Dispatcher.IInstanceProvider personnalisée appelée ObjectProviderBehavior
, qui fournit un comportement singleton ; elle retourne toujours la même instance de service et ne la recycle pas.
Pour personnaliser le fournisseur d'instances, l'exemple illustre l'implémentation d'un attribut personnalisé (SingletonBehaviorAttribute
) qui implémente System.ServiceModel.Description.IContractBehavior pour insérer le fournisseur d'instances de services personnalisé. Il implémente également IContractBehaviorAttribute, qui lie son application au contrat ISampleService
.
public class SingletonBehaviorAttribute : Attribute, IContractBehaviorAttribute, IContractBehavior
{
#region IContractBehaviorAttribute Members
public Type TargetContract
{
get { return typeof(ISampleService); }
}
#endregion
#region IContractBehavior Members
public void AddBindingParameters(ContractDescription description, ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection parameters)
{
return;
}
public void ApplyClientBehavior(ContractDescription description, ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
return;
}
public void ApplyDispatchBehavior(ContractDescription description, ServiceEndpoint endpoint, DispatchRuntime dispatch)
{
dispatch.InstanceProvider = new ObjectProviderBehavior("Custom ObjectProviderBehavior constructor.");
}
public void Validate(ContractDescription description, ServiceEndpoint endpoint)
{
return;
}
#endregion
}
Public Class SingletonBehaviorAttribute
Inherits Attribute
Implements IContractBehaviorAttribute, IContractBehavior
#Region "IContractBehaviorAttribute Members"
Public ReadOnly Property TargetContract() As Type Implements IContractBehaviorAttribute.TargetContract
Get
Return GetType(ISampleService)
End Get
End Property
#End Region
#Region "IContractBehavior Members"
Public Sub AddBindingParameters(ByVal description As ContractDescription, ByVal endpoint As ServiceEndpoint, ByVal parameters As System.ServiceModel.Channels.BindingParameterCollection) Implements IContractBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal description As ContractDescription, ByVal endpoint As ServiceEndpoint, ByVal clientRuntime As ClientRuntime) Implements IContractBehavior.ApplyClientBehavior
Return
End Sub
Public Sub ApplyDispatchBehavior(ByVal description As ContractDescription, ByVal endpoint As ServiceEndpoint, ByVal dispatch As DispatchRuntime) Implements IContractBehavior.ApplyDispatchBehavior
dispatch.InstanceProvider = New ObjectProviderBehavior("Custom ObjectProviderBehavior constructor.")
End Sub
Public Sub Validate(ByVal description As ContractDescription, ByVal endpoint As ServiceEndpoint) Implements IContractBehavior.Validate
Return
End Sub
#End Region
End Class
Remarques
Implémentez l'interface IContractBehaviorAttribute sur un attribut qui est également un objet System.ServiceModel.Description.IContractBehavior pour permettre l'utilisation de cet attribut de comportement de contrat sur un type de service, mais restreindre son application au contrat spécifié dans la propriété TargetContract.
L'implémentation de IContractBehaviorAttribute sur des attributs de comportements de contrat personnalisés n'est pas obligatoire et si l'attribut est appliqué à une interface de contrat ou à une classe de rappel duplex, la valeur de la propriété TargetContract est ignorée.
Pour plus d'informations, consultez System.ServiceModel.Description.IContractBehavior.
Propriétés
TargetContract |
Obtient le type du contrat auquel le comportement de contrat s'applique. |