Mercurial > pub > bltoolkit
diff Source/ServiceModel/LinqSoapServiceClient.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/ServiceModel/LinqSoapServiceClient.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,75 @@ +using System; +using System.ServiceModel; +using System.ServiceModel.Channels; + +namespace BLToolkit.ServiceModel +{ + class LinqSoapServiceClient : ClientBase<ILinqSoapService>, ILinqService, IDisposable + { + #region Init + + public LinqSoapServiceClient(string endpointConfigurationName) : base(endpointConfigurationName) { } + public LinqSoapServiceClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } + public LinqSoapServiceClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } + public LinqSoapServiceClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress) { } + + #endregion + + #region ILinqService Members + + public string GetSqlProviderType() + { + return Channel.GetSqlProviderType(); + } + + public int ExecuteNonQuery(string queryData) + { + return Channel.ExecuteNonQuery(queryData); + } + + public object ExecuteScalar(string queryData) + { + return Channel.ExecuteScalar(queryData); + } + + public string ExecuteReader(string queryData) + { + return Channel.ExecuteReader(queryData); + } + + public int ExecuteBatch(string queryData) + { + return Channel.ExecuteBatch(queryData); + } + + #endregion + + #region IDisposable Members + + void IDisposable.Dispose() + { + try + { + if (State != CommunicationState.Faulted) + ((ICommunicationObject)this).Close(); + else + Abort(); + } + catch (CommunicationException) + { + Abort(); + } + catch (TimeoutException) + { + Abort(); + } + catch (Exception) + { + Abort(); + throw; + } + } + + #endregion + } +}