IOperationBehavior Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализует методы, которые можно использовать для расширения поведения во время выполнения для операции в службе или клиентском приложении.
public interface class IOperationBehavior
public interface IOperationBehavior
type IOperationBehavior = interface
Public Interface IOperationBehavior
- Производный
Примеры
В следующем примере кода показана реализация System.ServiceModel.Dispatcher.IParameterInspector , которая записывается в консоль при вызове инспектора в операции. Эта настройка может быть присоединена только к или System.ServiceModel.Dispatcher.DispatchOperationSystem.ServiceModel.Dispatcher.ClientOperation , следовательно, обычно вставляется поведением операции.
#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
В следующем примере кода показано, как поведение операции присоединяет инспектор параметров к среде выполнения.
#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
Комментарии
IOperationBehavior Реализуйте интерфейс для изменения, проверки или расширения некоторых аспектов выполнения на уровне приложения для клиентских или служебных приложений.
AddBindingParameters Используйте метод для передачи пользовательских данных во время выполнения, чтобы разрешить привязки для поддержки пользовательского поведения.
ApplyClientBehavior Используйте метод для изменения, проверки или вставки расширений в диспетчер клиента в клиентском приложении.
ApplyDispatchBehavior Используйте метод для изменения, проверки или вставки расширений для выполнения на уровне операций в приложении службы.
Validate Используйте метод для подтверждения OperationDescription соответствия определенным требованиям. Это можно использовать для обеспечения включения определенного параметра конфигурации операции, поддержки определенной функции и других требований.
IOperationBehavior объекты могут использовать любой из этих методов, но часто это важно. В таких случаях неиспользуемые методы могут возвращать, не выполняя никаких действий.
Замечание
IOperationBehavior Все методы передают OperationDescription объект в качестве параметра. Этот параметр предназначен только для проверки; Если изменить объект, OperationDescription поведение выполнения не определено.
IOperationBehavior Объекты обычно используются для доступа к различным свойствам System.ServiceModel.Dispatcher.DispatchOperation объекта в приложении-службе и System.ServiceModel.Dispatcher.ClientOperation объекте в клиентском приложении.
Как правило, разработчик сначала проверяет точки расширяемости, чтобы определить, какой вариант настройки подходит для сценария приложения, а затем реализует настройку в соответствующей области. Например, System.ServiceModel.Description.IServiceBehavior объекты могут вставлять настройки для всех сообщений во всей службе, а System.ServiceModel.Description.IContractBehavior объекты могут вставлять настройки для всех сообщений в определенном контракте и т. д. Описание различных свойств и настроек, доступных, см. в разделе "Расширение ServiceHost" и уровня модели службы.
После того как настройка будет решена (и интерфейс настройки реализован при необходимости) и IOperationBehavior является соответствующей областью настройки, настройка должна быть вставлена в среду выполнения Windows Communication Foundation (WCF), реализуя IOperationBehavior и добавляя поведение операции в среду выполнения.
Существует два способа добавления IOperationBehavior среды выполнения:
Программным способом добавьте поведение пользовательской операции в OperationDescription.Behaviors свойство до открытия узла службы (в приложении службы) или фабрики каналов (в клиентском приложении).
Добавьте поведение с помощью пользовательского атрибута.
Чтобы выполнить задачу настройки службы, для которой она предназначена, IOperationBehavior объект необходимо добавить в OperationDescription.Behaviors свойство до создания среды выполнения службы, которая возникает при ICommunicationObject.Open вызове System.ServiceModel.ServiceHostметода. Чтобы выполнить задачу настройки клиента, IOperationBehavior объект необходимо добавить в OperationDescription.Behaviors свойство перед вызовом ChannelFactory<TChannel>.CreateChannel метода или ICommunicationObject.Open метода.ChannelFactory<TChannel>
Хотя поведение операции предназначено для простого доступа к среде выполнения в пределах отдельной операции, вы можете получить доступ к среде выполнения в большей области, доступ к родительскому объекту среды выполнения.
Методы
| Имя | Описание |
|---|---|
| AddBindingParameters(OperationDescription, BindingParameterCollection) |
Реализуйте для передачи данных во время выполнения привязкам для поддержки пользовательского поведения. |
| ApplyClientBehavior(OperationDescription, ClientOperation) |
Реализует изменение или расширение клиента во время операции. |
| ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Реализует изменение или расширение службы во время операции. |
| Validate(OperationDescription) |
Реализуйте, чтобы убедиться, что операция соответствует некоторым заданным критериям. |