IOperationBehavior Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Implementuje metody, které lze použít k rozšíření chování za běhu operace v aplikaci služby nebo klientské aplikace.
public interface class IOperationBehavior
public interface IOperationBehavior
type IOperationBehavior = interface
Public Interface IOperationBehavior
- Odvozené
Příklady
Následující příklad kódu ukazuje implementaci System.ServiceModel.Dispatcher.IParameterInspector , která zapisuje do konzoly při vyvolání inspektoru v operaci. Toto přizpůsobení lze připojit pouze k System.ServiceModel.Dispatcher.DispatchOperation nebo System.ServiceModel.Dispatcher.ClientOperation a proto je obvykle vloženo chováním operace.
#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
Následující příklad kódu ukazuje, jak chování operace připojí inspektor parametru k modulu 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
Poznámky
IOperationBehavior Implementujte rozhraní pro úpravy, zkoumání nebo rozšíření určitého aspektu provádění na úrovni aplikace pro klientské nebo servisní aplikace.
AddBindingParameters Pomocí metody můžete předat vlastní data za běhu, aby bylo možné povolit vazby pro podporu vlastního chování.
ApplyClientBehavior Tato metoda slouží k úpravě, prozkoumání nebo vložení rozšíření do dispečera klienta v klientské aplikaci.
Tuto metodu ApplyDispatchBehavior použijte k úpravě, prozkoumání nebo vložení rozšíření pro provádění v aplikaci služby v celé operaci.
Použijte metodu ValidateOperationDescription k potvrzení, že splňuje konkrétní požadavky. Dá se použít k zajištění, že operace má povolené určité nastavení konfigurace, podporuje konkrétní funkci a další požadavky.
IOperationBehavior objekty mohou využívat některou z těchto metod, ale často je jen jedna důležitá; v takových případech se nepoužívané metody můžou vrátit a neprovedou žádnou akci.
Poznámka:
IOperationBehavior Všechny metody předávají OperationDescription objekt jako parametr. Tento parametr je určen pouze ke zkoumání; pokud upravíte OperationDescription objekt chování provádění je nedefinováno.
IOperationBehavior objekty se obvykle používají pro přístup k různým vlastnostem objektu System.ServiceModel.Dispatcher.DispatchOperation v aplikaci služby a System.ServiceModel.Dispatcher.ClientOperation objektu v klientské aplikaci.
Vývojář obvykle zkontroluje body rozšiřitelnosti, aby určil, která možnost přizpůsobení vyhovuje scénáři aplikace, a pak implementuje přizpůsobení v příslušném oboru. Objekty můžou například System.ServiceModel.Description.IServiceBehavior vkládat vlastní nastavení pro všechny zprávy v celé službě a System.ServiceModel.Description.IContractBehavior objekty můžou vkládat vlastní nastavení pro všechny zprávy v rámci konkrétního kontraktu atd. Popis různých dostupných vlastností a přizpůsobení naleznete v tématu Rozšíření ServiceHost a vrstvy modelu služby.
Jakmile je přizpůsobení rozhodnuto (a v případě potřeby implementované rozhraní pro přizpůsobení) a IOperationBehavior je vhodným rozsahem přizpůsobení, musí být přizpůsobení vloženo do modulu runtime Windows Communication Foundation (WCF) implementací IOperationBehavior a přidáním chování operace do modulu runtime.
Existují dva způsoby, jak přidat IOperationBehavior modul runtime:
Programové přidání vlastního chování operace do OperationDescription.Behaviors vlastnosti před otevřením hostitele služby (v aplikaci služby) nebo objektu pro vytváření kanálů (v klientské aplikaci).
Přidejte chování pomocí vlastního atributu.
Chcete-li provést úlohu přizpůsobení služby, pro kterou je určena, IOperationBehavior musí být objekt přidán do OperationDescription.Behaviors vlastnosti před vytvořením modulu runtime služby, který nastane při ICommunicationObject.Open zavolání System.ServiceModel.ServiceHostmetody . Chcete-li provést úlohu přizpůsobení klienta, IOperationBehavior musí být objekt přidán do OperationDescription.Behaviors vlastnosti před voláním ChannelFactory<TChannel>.CreateChannel metody nebo ICommunicationObject.Open metody on ChannelFactory<TChannel>.
I když je chování operace navržené pro snadný přístup k modulu runtime v oboru jednotlivé operace, můžete k modulu runtime přistupovat ve větším rozsahu přístupem k nadřazeného objektu runtime.
Metody
| Name | Description |
|---|---|
| AddBindingParameters(OperationDescription, BindingParameterCollection) |
Implementujte předávání dat za běhu do vazeb pro podporu vlastního chování. |
| ApplyClientBehavior(OperationDescription, ClientOperation) |
Implementuje úpravu nebo rozšíření klienta v rámci operace. |
| ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Implementuje změnu nebo rozšíření služby napříč operací. |
| Validate(OperationDescription) |
Implementujte, abyste potvrdili, že operace splňuje některá zamýšlená kritéria. |