Sdílet prostřednictvím


IOperationBehavior Rozhraní

Definice

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.

Platí pro