/Source/ServiceModel/ServiceModelDataContext.cs
C# | 102 lines | 78 code | 24 blank | 0 comment | 20 complexity | 855e8185ef81063ab960a8b350f0a7e0 MD5 | raw file
- using System;
- using System.ServiceModel;
- using System.ServiceModel.Channels;
-
- using JetBrains.Annotations;
-
- namespace BLToolkit.ServiceModel
- {
- using Data.Linq;
-
- using NotNullAttribute = NotNullAttribute;
-
- public class ServiceModelDataContext : RemoteDataContextBase
- {
- #region Init
-
- ServiceModelDataContext()
- {
- }
-
- public ServiceModelDataContext([NotNull] string endpointConfigurationName)
- : this()
- {
- if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName");
-
- _endpointConfigurationName = endpointConfigurationName;
- }
-
- public ServiceModelDataContext([NotNull] string endpointConfigurationName, [NotNull] string remoteAddress)
- : this()
- {
- if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName");
- if (remoteAddress == null) throw new ArgumentNullException("remoteAddress");
-
- _endpointConfigurationName = endpointConfigurationName;
- _remoteAddress = remoteAddress;
- }
-
- public ServiceModelDataContext([NotNull] string endpointConfigurationName, [NotNull] EndpointAddress endpointAddress)
- : this()
- {
- if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName");
- if (endpointAddress == null) throw new ArgumentNullException("endpointAddress");
-
- _endpointConfigurationName = endpointConfigurationName;
- _endpointAddress = endpointAddress;
- }
-
- public ServiceModelDataContext([NotNull] Binding binding, [NotNull] EndpointAddress endpointAddress)
- : this()
- {
- if (binding == null) throw new ArgumentNullException("binding");
- if (endpointAddress == null) throw new ArgumentNullException("endpointAddress");
-
- Binding = binding;
- _endpointAddress = endpointAddress;
- }
-
- string _endpointConfigurationName;
- string _remoteAddress;
- EndpointAddress _endpointAddress;
-
- public Binding Binding { get; private set; }
-
- #endregion
-
- #region Overrides
-
- protected override ILinqService GetClient()
- {
- if (Binding != null)
- return new LinqServiceClient(Binding, _endpointAddress);
-
- if (_endpointAddress != null)
- return new LinqServiceClient(_endpointConfigurationName, _endpointAddress);
-
- if (_remoteAddress != null)
- return new LinqServiceClient(_endpointConfigurationName, _remoteAddress);
-
- return new LinqServiceClient(_endpointConfigurationName);
- }
-
- protected override IDataContext Clone()
- {
- return new ServiceModelDataContext
- {
- MappingSchema = MappingSchema,
- Binding = Binding,
- _endpointConfigurationName = _endpointConfigurationName,
- _remoteAddress = _remoteAddress,
- _endpointAddress = _endpointAddress,
- };
- }
-
- protected override string ContextIDPrefix
- {
- get { return "LinqService_"; }
- }
-
- #endregion
- }
- }