Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


IOperationBehavior Interfejs

Definicja

Ważne

Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.

Implementuje metody, które mogą służyć do rozszerzania zachowania czasu wykonywania dla operacji w usłudze lub aplikacji klienckiej.

C#
public interface IOperationBehavior
Pochodne

Przykłady

Poniższy przykład kodu przedstawia implementację System.ServiceModel.Dispatcher.IParameterInspector tego zapisu w konsoli, gdy inspektor jest wywoływany w operacji. To dostosowanie można dołączyć tylko do System.ServiceModel.Dispatcher.DispatchOperation elementu lub System.ServiceModel.Dispatcher.ClientOperation i dlatego jest zwykle wstawiane przez zachowanie operacji.

C#
#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;
}

Poniższy przykład kodu pokazuje, jak zachowanie operacji dołącza inspektora parametrów do środowiska uruchomieniowego.

C#
#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; }

Uwagi

Zaimplementuj interfejs, IOperationBehavior aby zmodyfikować, zbadać lub rozszerzyć pewien aspekt wykonywania w całej operacji na poziomie aplikacji dla aplikacji klienckich lub usług.

  • AddBindingParameters Użyj metody , aby przekazać dane niestandardowe w czasie wykonywania, aby umożliwić tworzenie powiązań w celu obsługi zachowania niestandardowego.

  • ApplyClientBehavior Użyj metody , aby zmodyfikować, zbadać lub wstawić rozszerzenia do dyspozytora klienta w aplikacji klienckiej.

  • ApplyDispatchBehavior Użyj metody , aby zmodyfikować, zbadać lub wstawić rozszerzenia do wykonywania w całej operacji w aplikacji usługi.

  • Validate Użyj metody , aby potwierdzić, że OperationDescription spełnia określone wymagania. Może to służyć do zapewnienia, że operacja ma włączone określone ustawienie konfiguracji, obsługuje określoną funkcję i inne wymagania.

IOperationBehavior obiekty mogą korzystać z dowolnej z tych metod, ale często tylko jedna z nich jest ważna; w takich przypadkach nieużywane metody mogą zwracać, nie wykonując żadnej akcji.

Uwaga

IOperationBehavior Wszystkie metody przekazują OperationDescription obiekt jako parametr. Ten parametr jest przeznaczony tylko do badania; jeśli zmodyfikujesz OperationDescription obiekt, zachowanie wykonywania jest niezdefiniowane.

IOperationBehavior Obiekty są zwykle używane do uzyskiwania dostępu do różnych właściwości System.ServiceModel.Dispatcher.DispatchOperation obiektu w aplikacji usługi i System.ServiceModel.Dispatcher.ClientOperation obiektu w aplikacji klienckiej.

Zazwyczaj deweloper najpierw przegląda punkty rozszerzalności, aby określić, która opcja dostosowywania odpowiada scenariuszowi aplikacji, a następnie implementuje dostosowanie w odpowiednim zakresie. Na przykład System.ServiceModel.Description.IServiceBehavior obiekty mogą wstawiać dostosowania dla wszystkich komunikatów w całej usłudze, a System.ServiceModel.Description.IContractBehavior obiekty mogą wstawiać dostosowania dla wszystkich komunikatów w określonym kontrakcie itd. Opis różnych dostępnych właściwości i dostosowań można znaleźć w temacie Extending ServiceHost and the Service Model Layer (Rozszerzanie elementu ServiceHost i warstwy modelu usług).

Po podjęciu decyzji o dostosowaniu (i zaimplementowaniu interfejsu dostosowywania w razie potrzeby) i IOperationBehavior odpowiednim zakresie dostosowywania należy wstawić dostosowanie do środowiska uruchomieniowego programu Windows Communication Foundation (WCF), implementując IOperationBehavior i dodając zachowanie operacji do środowiska uruchomieniowego.

Istnieją dwa sposoby dodawania elementu IOperationBehavior do środowiska uruchomieniowego:

  • Programowe dodawanie zachowania operacji niestandardowej do OperationDescription.Behaviors właściwości przed otwarciem hosta usługi (w aplikacji usługi) lub fabryki kanałów (w aplikacji klienckiej).

  • Dodaj zachowanie przy użyciu atrybutu niestandardowego.

Aby wykonać zadanie dostosowywania usługi, dla którego jest on przeznaczony, IOperationBehavior należy dodać obiekt do OperationDescription.Behaviors właściwości przed utworzeniem środowiska uruchomieniowego usługi, co ma miejsce, gdy ICommunicationObject.Open wywoływana jest metoda .System.ServiceModel.ServiceHost Aby wykonać zadanie dostosowywania klienta, IOperationBehavior przed wywołaniem ChannelFactory<TChannel>.CreateChannel metody lub ICommunicationObject.Open metody w ChannelFactory<TChannel>metodzie należy dodać obiekt do OperationDescription.Behaviors właściwości .

Chociaż zachowanie operacji jest przeznaczone do łatwego dostępu do środowiska uruchomieniowego w zakresie pojedynczej operacji, można uzyskać dostęp do środowiska uruchomieniowego w większym zakresie, korzystając z nadrzędnego obiektu środowiska uruchomieniowego.

Metody

AddBindingParameters(OperationDescription, BindingParameterCollection)

Zaimplementuj przekazywanie danych w czasie wykonywania do powiązań w celu obsługi zachowania niestandardowego.

ApplyClientBehavior(OperationDescription, ClientOperation)

Implementuje modyfikację lub rozszerzenie klienta w ramach operacji.

ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementuje modyfikację lub rozszerzenie usługi w ramach operacji.

Validate(OperationDescription)

Zaimplementuj, aby potwierdzić, że operacja spełnia określone kryteria.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0