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 pro operaci ve službě nebo klientské aplikaci.
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 parametrů 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
Implementujte rozhraní pro úpravu IOperationBehavior , prozkoumání nebo rozšíření určitého aspektu provádění na úrovni aplikace pro klientské nebo servisní aplikace.
AddBindingParameters Pomocí metody předejte vlastní data za běhu, abyste umožnili vazby pro podporu vlastního chování.
Použijte metodu ApplyClientBehavior k úpravě, prozkoumání nebo vložení rozšíření pro dispečer klienta v klientské aplikaci.
Použijte metodu ApplyDispatchBehavior k úpravě, prozkoumání nebo vložení rozšíření pro provádění v aplikaci služby.
Validate Pomocí metody potvrďte, že OperationDescription splňuje konkrétní požadavky. Dá se použít k zajištění, aby operace byla povolena určitá nastavení konfigurace, podporovala konkrétní funkci a další požadavky.
IOperationBehavior objekty mohou využívat některou z těchto metod, ale často je důležitá pouze jedna; v takových případech se nepoužívané metody můžou vrátit, provádět žádnou akci.
Poznámka
IOperationBehavior Všechny metody předávají OperationDescription objekt jako parametr. Tento parametr je určen pouze pro vyšetření; pokud upravíte OperationDescription objekt, chování provádění není definová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 a určí, která možnost přizpůsobení vyhovuje scénáři aplikace, a pak implementuje přizpůsobení v příslušném oboru. System.ServiceModel.Description.IServiceBehavior Například objekty můžou 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 napříč konkrétním kontraktem atd. Popis různých vlastností a přizpůsobení dostupných najdete v tématu Rozšíření serviceHost a vrstvy modelu služby.
Jakmile se přizpůsobení rozhodne (a v případě potřeby implementované rozhraní přizpůsobení) a IOperationBehavior je to odpovídající rozsah 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.
Modul runtime můžete přidat IOperationBehavior dvěma způsoby:
Prostřednictvím kódu programu přidejte vlastní 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 konstrukcí modulu runtime služby, který nastane při ICommunicationObject.Open volá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 tak, že přistupujete k nadřazeného objektu runtime.
Metody
AddBindingParameters(OperationDescription, BindingParameterCollection) |
Implementujte předávání dat za běhu vazbám pro podporu vlastního chování. |
ApplyClientBehavior(OperationDescription, ClientOperation) |
Implementuje úpravu nebo rozšíření klienta v rámci operace. |
ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Implementuje úpravu nebo rozšíření služby v rámci operace. |
Validate(OperationDescription) |
Implementujte, abyste potvrdili, že operace splňuje určitá zamýšlená kritéria. |