IOperationBehavior Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Implementeert methoden die kunnen worden gebruikt om runtimegedrag voor een bewerking in een service of clienttoepassing uit te breiden.
public interface class IOperationBehavior
public interface IOperationBehavior
type IOperationBehavior = interface
Public Interface IOperationBehavior
- Afgeleid
Voorbeelden
In het volgende codevoorbeeld ziet u een implementatie van System.ServiceModel.Dispatcher.IParameterInspector die naar de console schrijft wanneer de inspector wordt aangeroepen voor een bewerking. Deze aanpassing kan alleen worden gekoppeld aan of System.ServiceModel.Dispatcher.DispatchOperationSystem.ServiceModel.Dispatcher.ClientOperation en wordt daarom meestal ingevoegd door een bewerkingsgedrag.
#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
Console.WriteLine(
"IParameterInspector.AfterCall called for {0} with return value {1}.",
operationName,
returnValue.ToString()
);
}
public object BeforeCall(string operationName, object[] inputs)
{
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName);
return null;
}
#Region "IParameterInspector Members"
Public Sub AfterCall(ByVal operationName As String, ByVal outputs() As Object, ByVal returnValue As Object, _
ByVal correlationState As Object) Implements IParameterInspector.AfterCall
Console.WriteLine("IParameterInspector.AfterCall called for {0} with return value {1}.", _
operationName, returnValue.ToString())
End Sub
Public Function BeforeCall(ByVal operationName As String, ByVal inputs() As Object) As Object Implements _
IParameterInspector.BeforeCall
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName)
Return Nothing
End Function
In het volgende codevoorbeeld ziet u hoe het bewerkingsgedrag de parametercontrole koppelt aan de runtime.
#region IOperationBehavior Members
public void AddBindingParameters(
OperationDescription operationDescription, BindingParameterCollection bindingParameters
)
{ return; }
public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
clientOperation.ParameterInspectors.Add(new Inspector());
}
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(new Inspector());
}
public void Validate(OperationDescription operationDescription){ return; }
#Region "IOperationBehavior Members"
Public Sub AddBindingParameters(ByVal operationDescription As OperationDescription, _
ByVal bindingParameters As BindingParameterCollection) Implements _
IOperationBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal operationDescription As OperationDescription, ByVal _
clientOperation As ClientOperation) Implements IOperationBehavior.ApplyClientBehavior
clientOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub ApplyDispatchBehavior(ByVal operationDescription As OperationDescription, ByVal dispatchOperation As _
DispatchOperation) Implements IOperationBehavior.ApplyDispatchBehavior
dispatchOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub Validate(ByVal operationDescription As OperationDescription) Implements IOperationBehavior.Validate
Return
End Sub
Opmerkingen
Implementeer de interface voor het IOperationBehavior wijzigen, onderzoeken of uitbreiden van een bepaald aspect van uitvoering in de hele bewerking op toepassingsniveau voor client- of servicetoepassingen.
Gebruik de AddBindingParameters methode om aangepaste gegevens tijdens runtime door te geven om bindingen in te schakelen om aangepast gedrag te ondersteunen.
Gebruik de ApplyClientBehavior methode om extensies te wijzigen, te onderzoeken of in te voegen voor een client-dispatcher in een clienttoepassing.
Gebruik de ApplyDispatchBehavior methode om extensies te wijzigen, te onderzoeken of in te voegen voor uitvoering in een servicetoepassing voor de hele bewerking.
Gebruik de Validate methode om te controleren of een OperationDescription voldoet aan specifieke vereisten. Dit kan worden gebruikt om ervoor te zorgen dat een bewerking een bepaalde configuratie-instelling heeft ingeschakeld, ondersteuning biedt voor een bepaalde functie en andere vereisten.
IOperationBehavior objecten kunnen gebruikmaken van een van deze methoden, maar vaak is slechts één belangrijk; in dergelijke gevallen kunnen de ongebruikte methoden retourneren en geen actie uitvoeren.
Note
IOperationBehavior Alle methoden geven een OperationDescription object door als parameter. Deze parameter is alleen bedoeld voor onderzoek; als u het OperationDescription object wijzigt, is het uitvoeringsgedrag niet gedefinieerd.
IOperationBehavior objecten worden doorgaans gebruikt voor toegang tot de verschillende eigenschappen van het System.ServiceModel.Dispatcher.DispatchOperation object in een servicetoepassing en het System.ServiceModel.Dispatcher.ClientOperation object in een clienttoepassing.
Normaal gesproken beoordeelt de ontwikkelaar eerst de uitbreidbaarheidspunten om te bepalen welke aanpassingsoptie past bij het toepassingsscenario en implementeert vervolgens de aanpassing op het juiste bereik. Objecten kunnen bijvoorbeeld System.ServiceModel.Description.IServiceBehavior aanpassingen invoegen voor alle berichten in een hele service en System.ServiceModel.Description.IContractBehavior objecten kunnen aanpassingen invoegen voor alle berichten in een specifiek contract, enzovoort. Zie Uitbreiden van ServiceHost en de servicemodellaag voor een beschrijving van de verschillende beschikbare eigenschappen en aanpassingen.
Zodra een aanpassing is besloten (en de aanpassingsinterface die indien nodig is geïmplementeerd) en de IOperationBehavior het juiste aanpassingsbereik is, moet de aanpassing worden ingevoegd in de wcf-runtime (Windows Communication Foundation) door IOperationBehavior te implementeren en het gedrag van de bewerking toe te voegen aan de runtime.
Er zijn twee manieren om de IOperationBehavior runtime toe te voegen:
Voeg programmatisch het gedrag van de aangepaste bewerking toe aan de OperationDescription.Behaviors eigenschap vóór het openen van de servicehost (in een servicetoepassing) of de kanaalfactory (in een clienttoepassing).
Voeg het gedrag toe met behulp van een aangepast kenmerk.
Als u de serviceaanpassingstaak wilt uitvoeren waarvoor het is bedoeld, moet het IOperationBehavior object worden toegevoegd aan de OperationDescription.Behaviors eigenschap vóór de bouw van de serviceruntime, die optreedt wanneer ICommunicationObject.Open de methode wordt aangeroepen System.ServiceModel.ServiceHost. Als u een clientaanpassingstaak wilt uitvoeren, moet het IOperationBehavior object worden toegevoegd aan de OperationDescription.Behaviors eigenschap voordat u de ChannelFactory<TChannel>.CreateChannel methode of de ICommunicationObject.Open methode aanroept.ChannelFactory<TChannel>
Hoewel het bewerkingsgedrag is ontworpen voor eenvoudige toegang tot de runtime op het bereik van een afzonderlijke bewerking, hebt u toegang tot de runtime op een groter bereik door toegang te krijgen tot het bovenliggende runtime-object.
Methoden
| Name | Description |
|---|---|
| AddBindingParameters(OperationDescription, BindingParameterCollection) |
Implementeer om gegevens tijdens runtime door te geven aan bindingen ter ondersteuning van aangepast gedrag. |
| ApplyClientBehavior(OperationDescription, ClientOperation) |
Implementeert een wijziging of uitbreiding van de client in een bewerking. |
| ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Implementeert een wijziging of uitbreiding van de service in een bewerking. |
| Validate(OperationDescription) |
Implementeer om te bevestigen dat de bewerking voldoet aan een aantal beoogde criteria. |