public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Invoker = new ExceptionTranslator(dispatchOperation.Invoker, this); }
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Invoker = new CacheExtension(dispatchOperation.Invoker); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.ParameterInspectors.Add(new MyParameterInspector(this.pattern, this.message)); }
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operation, DispatchOperation service) { // "it is a passive operation behavior" }
public virtual void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { // chain invokers. IOperationInvoker oldInvoker = dispatchOperation.Invoker; dispatchOperation.Invoker = CreateInvoker(oldInvoker, operationDescription, dispatchOperation); }
protected virtual void OnContractServiceOperation(DispatchOperation operation) { }
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { this.AddQueryComposer(dispatchOperation, operationDescription, true); }
private void AddQueryComposer(DispatchOperation dispatchOperation, OperationDescription operationDescription, bool isAttributeSetOnOperation) { // QueryComposer is added for 2-way operations when the returnType is IEnumerable, IEnumerable<>, IQueryable or IQueryable<> // if enabled and the user did not specify the queryComposerType, add the UrlQueryComposerType if (dispatchOperation.IsOneWay) { if (isAttributeSetOnOperation && this.enabled) { // throw if the QueryCompositionAttribute was set on the Operation throw new InvalidOperationException(String.Format( CultureInfo.InvariantCulture, "QueryComposition attribute was set on one-way operation {0}. Please remove this attribute from this operation.", dispatchOperation.Name)); } return; } else { // Verify if the returnType type is IEnumerable, IEnumerable<>, IQueryable or IQueryable<> bool isQueryCompositionSupportedOnReturnType = false; Type returnType = null; if (operationDescription.Messages[1] != null && operationDescription.Messages[1].Body != null && operationDescription.Messages[1].Body.ReturnValue != null) { returnType = operationDescription.Messages[1].Body.ReturnValue.Type; if (returnType != null) { if (returnType == EnumerableType) { isQueryCompositionSupportedOnReturnType = true; } else if (returnType.IsGenericType) { Type genericTypeDefinition = returnType.GetGenericTypeDefinition(); if (genericTypeDefinition == GenericEnumerableType) { isQueryCompositionSupportedOnReturnType = true; } } } } // if the returnType is not IEnumerable, IEnumerable<>, we don't set the QueryComposer if (!isQueryCompositionSupportedOnReturnType) { // throw if the QueryCompositionAttribute was set on the Operation if (isAttributeSetOnOperation && this.enabled) { throw new InvalidOperationException( String.Format( CultureInfo.InvariantCulture, "QueryComposition attribute was set on operation {0}, but the return type is not defined as IEnumerable. Please remove this attribute from this operation or change the operation return type to IEnumerable", dispatchOperation.Name)); } return; } if (this.enabled) { IQueryComposer queryComposer = null; if (this.queryComposerType == null) { queryComposer = new UrlQueryComposer(); } else { queryComposer = (IQueryComposer)Activator.CreateInstance(this.queryComposerType); } dispatchOperation.Invoker = new QueryCompositionOperationInvoker(dispatchOperation.Invoker, queryComposer); } } }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { Console.WriteLine("IOperationBehavior - ApplyDispatchBehavior " + _host.ChannelDispatchers.Count); _state.CurrentStage += ", IOperationBehavior.ApplyDispatchBehavior"; }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { //dispatchOperation.Parent.MessageInspectors.Add(new MessageInspector()); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Invoker = new ErrorLoggingOperationInvokerFacade(dispatchOperation.Invoker, WcfDependencyManager.ResolveLogger()); }
// Implements a modification or extension of the service across an operation public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { // This method does not get called client side. }
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { //throw new NotImplementedException(); }
protected override InvokerBase CreateInvoker(IOperationInvoker oldInvoker, OperationDescription operationDescription, DispatchOperation dispatchOperation) { return(new ResponseExceptionInvoker(oldInvoker, operationDescription)); }
public void ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch) { dispatch.Invoker = new OperationCachingInvoker(dispatch.Action, dispatch.Invoker); }
protected abstract InvokerBase CreateInvoker(IOperationInvoker oldInvoker, OperationDescription operationDescription, DispatchOperation dispatchOperation);
public void ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch) { DataContractSerializerOperationBehavior dataContractSerializerOperationBehavior = description.Behaviors.Find <DataContractSerializerOperationBehavior>(); dataContractSerializerOperationBehavior.DataContractResolver = new ProxyDataContractResolver(); }
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { IOperationBehavior innerBehavior = new ProtoOperationBehavior(operationDescription); innerBehavior.ApplyDispatchBehavior(operationDescription, dispatchOperation); }
public void ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch) { dispatch.ParameterInspectors.Add(new ParameterValidatorBehavior(ThrowErrorOnFirstError, ThrowErrorAfterValidation)); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { ServiceName = dispatchOperation.Parent.Type.Name; dispatchOperation.ParameterInspectors.Add(this); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { IOperationInvoker baseInvoker = dispatchOperation.Invoker; dispatchOperation.Invoker = new EGOperationInvoker(baseInvoker, operationDescription); }
/// <summary> /// 添加服务端自定义扩展对象 /// </summary> /// <param name="operationDescription"></param> /// <param name="dispatchOperation"></param> public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { IOperationInvoker originInvoker = dispatchOperation.Invoker; dispatchOperation.Invoker = new InvokeExceptionDecorator(originInvoker); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Invoker = new PreflightOperationInvoker(operationDescription.Messages[1].Action, this.allowedMethods); }
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Formatter = new ResponseJsonFormatter(operationDescription, dispatchOperation.Formatter); }
/// <summary>在操作范围内执行服务的修改或扩展。</summary> /// <param name="operationDescription">正在检查的操作。 仅用于检查。 如果修改了操作说明,则结果将不确定。</param> /// <param name="dispatchOperation">公开 <paramref name="operationDescription" /> 所描述的操作的自定义属性的运行时对象。</param> public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.ParameterInspectors.Add(new CustomParameterInspector()); }
/// <summary> /// Apply the dispatch behavior. /// </summary> /// <param name="operationDescription">The operation description.</param> /// <param name="dispatchOperation">The dispatch description.</param> public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Formatter = new WcfMessageDispatchFormatter <IAmiContract>(operationDescription); }
/// <summary> /// Implements a modification or extension of the service across an operation. /// </summary> /// <param name="description"> /// The operation being examined. Use for examination only. If the operation /// description is modified, the results are undefined. /// </param> /// <param name="dispatch"> /// The run-time object that exposes customization properties for the operation /// described by operationDescription. /// </param> public void ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch) { ReplaceDataContractSerializerOperationBehavior(description); }
/// <summary> /// Apply the dispatch behavior /// </summary> /// <param name="operationDescription"></param> /// <param name="dispatchOperation"></param> public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Formatter = new FhirMessageDispatchFormatter(operationDescription); }