public ExternalDataExchangeClient(Binding binding, EndpointAddress address) : base(binding, address) { ContractDescription contractDescription = this.Endpoint.Contract; foreach (OperationDescription opDesc in contractDescription.Operations) { NetDataContractSerializerOperationBehavior netDataContractSerializerOperationBehavior = NetDataContractSerializerOperationBehavior.ApplyTo(opDesc); Fx.Assert(netDataContractSerializerOperationBehavior != null, "IExternalDataExchange must use NetDataContractSerializer."); } }
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) { WorkflowServiceHost serviceHost = endpointDispatcher.ChannelDispatcher.Host as WorkflowServiceHost; if (serviceHost != null) { foreach (OperationDescription operation in endpoint.Contract.Operations) { NetDataContractSerializerOperationBehavior netDataContractSerializerOperationBehavior = NetDataContractSerializerOperationBehavior.ApplyTo(operation); } this.extensionProvider.PopulateExtensions(serviceHost, endpointDispatcher.EndpointAddress.Uri.AbsoluteUri); } }
/// <summary> /// Injects the net data contract serializer to the runtime. /// </summary> private static void InjectNetDataContractSerializer( OperationDescription description) { DataContractSerializerOperationBehavior dcsOperationBehavior = description.Behaviors.Find<DataContractSerializerOperationBehavior>(); if (dcsOperationBehavior != null) { description.Behaviors.Remove(dcsOperationBehavior); NetDataContractSerializerOperationBehavior ndcs = new NetDataContractSerializerOperationBehavior(description); ndcs.MaxItemsInObjectGraph = int.MaxValue; description.Behaviors.Add(ndcs); } }