Sdílet prostřednictvím


IOperationBehavior Rozhraní

Definice

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.

Platí pro