Beispiel #1
0
        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.");
            }
        }
Beispiel #2
0
        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);
            }
        }