//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace ConsumingServicesInstancesMode.ServiceReferencePerCall {
    using System.Runtime.Serialization;
    using System;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CompositeType", Namespace="http://schemas.datacontract.org/2004/07/WcfServiceLibraryPerCall")]
    [System.SerializableAttribute()]
    public partial class CompositeType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool BoolValueField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string StringValueField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool BoolValue {
            get {
                return this.BoolValueField;
            }
            set {
                if ((this.BoolValueField.Equals(value) != true)) {
                    this.BoolValueField = value;
                    this.RaisePropertyChanged("BoolValue");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string StringValue {
            get {
                return this.StringValueField;
            }
            set {
                if ((object.ReferenceEquals(this.StringValueField, value) != true)) {
                    this.StringValueField = value;
                    this.RaisePropertyChanged("StringValue");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServiceReferencePerCall.IServicePerCall")]
    public interface IServicePerCall {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/GetData", ReplyAction="http://tempuri.org/IServicePerCall/GetDataResponse")]
        string GetData(int value);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/GetData", ReplyAction="http://tempuri.org/IServicePerCall/GetDataResponse")]
        System.Threading.Tasks.Task<string> GetDataAsync(int value);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/GetDataUsingDataContract", ReplyAction="http://tempuri.org/IServicePerCall/GetDataUsingDataContractResponse")]
        ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType GetDataUsingDataContract(ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType composite);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/GetDataUsingDataContract", ReplyAction="http://tempuri.org/IServicePerCall/GetDataUsingDataContractResponse")]
        System.Threading.Tasks.Task<ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType> GetDataUsingDataContractAsync(ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType composite);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/Increment", ReplyAction="http://tempuri.org/IServicePerCall/IncrementResponse")]
        int Increment();
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IServicePerCall/Increment", ReplyAction="http://tempuri.org/IServicePerCall/IncrementResponse")]
        System.Threading.Tasks.Task<int> IncrementAsync();
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IServicePerCallChannel : ConsumingServicesInstancesMode.ServiceReferencePerCall.IServicePerCall, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ServicePerCallClient : System.ServiceModel.ClientBase<ConsumingServicesInstancesMode.ServiceReferencePerCall.IServicePerCall>, ConsumingServicesInstancesMode.ServiceReferencePerCall.IServicePerCall {
        
        public ServicePerCallClient() {
        }
        
        public ServicePerCallClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public ServicePerCallClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public ServicePerCallClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public ServicePerCallClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public string GetData(int value) {
            return base.Channel.GetData(value);
        }
        
        public System.Threading.Tasks.Task<string> GetDataAsync(int value) {
            return base.Channel.GetDataAsync(value);
        }
        
        public ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType GetDataUsingDataContract(ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType composite) {
            return base.Channel.GetDataUsingDataContract(composite);
        }
        
        public System.Threading.Tasks.Task<ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType> GetDataUsingDataContractAsync(ConsumingServicesInstancesMode.ServiceReferencePerCall.CompositeType composite) {
            return base.Channel.GetDataUsingDataContractAsync(composite);
        }
        
        public int Increment() {
            return base.Channel.Increment();
        }
        
        public System.Threading.Tasks.Task<int> IncrementAsync() {
            return base.Channel.IncrementAsync();
        }
    }
}
