Mercurial > pub > bltoolkit
comparison Source/ServiceModel/ServiceModelDataContext.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.ServiceModel; | |
3 using System.ServiceModel.Channels; | |
4 | |
5 using JetBrains.Annotations; | |
6 | |
7 namespace BLToolkit.ServiceModel | |
8 { | |
9 using Data.Linq; | |
10 | |
11 using NotNullAttribute = NotNullAttribute; | |
12 | |
13 public class ServiceModelDataContext : RemoteDataContextBase | |
14 { | |
15 #region Init | |
16 | |
17 ServiceModelDataContext() | |
18 { | |
19 } | |
20 | |
21 public ServiceModelDataContext([NotNull] string endpointConfigurationName) | |
22 : this() | |
23 { | |
24 if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName"); | |
25 | |
26 _endpointConfigurationName = endpointConfigurationName; | |
27 } | |
28 | |
29 public ServiceModelDataContext([NotNull] string endpointConfigurationName, [NotNull] string remoteAddress) | |
30 : this() | |
31 { | |
32 if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName"); | |
33 if (remoteAddress == null) throw new ArgumentNullException("remoteAddress"); | |
34 | |
35 _endpointConfigurationName = endpointConfigurationName; | |
36 _remoteAddress = remoteAddress; | |
37 } | |
38 | |
39 public ServiceModelDataContext([NotNull] string endpointConfigurationName, [NotNull] EndpointAddress endpointAddress) | |
40 : this() | |
41 { | |
42 if (endpointConfigurationName == null) throw new ArgumentNullException("endpointConfigurationName"); | |
43 if (endpointAddress == null) throw new ArgumentNullException("endpointAddress"); | |
44 | |
45 _endpointConfigurationName = endpointConfigurationName; | |
46 _endpointAddress = endpointAddress; | |
47 } | |
48 | |
49 public ServiceModelDataContext([NotNull] Binding binding, [NotNull] EndpointAddress endpointAddress) | |
50 : this() | |
51 { | |
52 if (binding == null) throw new ArgumentNullException("binding"); | |
53 if (endpointAddress == null) throw new ArgumentNullException("endpointAddress"); | |
54 | |
55 Binding = binding; | |
56 _endpointAddress = endpointAddress; | |
57 } | |
58 | |
59 string _endpointConfigurationName; | |
60 string _remoteAddress; | |
61 EndpointAddress _endpointAddress; | |
62 | |
63 public Binding Binding { get; private set; } | |
64 | |
65 #endregion | |
66 | |
67 #region Overrides | |
68 | |
69 protected override ILinqService GetClient() | |
70 { | |
71 if (Binding != null) | |
72 return new LinqServiceClient(Binding, _endpointAddress); | |
73 | |
74 if (_endpointAddress != null) | |
75 return new LinqServiceClient(_endpointConfigurationName, _endpointAddress); | |
76 | |
77 if (_remoteAddress != null) | |
78 return new LinqServiceClient(_endpointConfigurationName, _remoteAddress); | |
79 | |
80 return new LinqServiceClient(_endpointConfigurationName); | |
81 } | |
82 | |
83 protected override IDataContext Clone() | |
84 { | |
85 return new ServiceModelDataContext | |
86 { | |
87 MappingSchema = MappingSchema, | |
88 Binding = Binding, | |
89 _endpointConfigurationName = _endpointConfigurationName, | |
90 _remoteAddress = _remoteAddress, | |
91 _endpointAddress = _endpointAddress, | |
92 }; | |
93 } | |
94 | |
95 protected override string ContextIDPrefix | |
96 { | |
97 get { return "LinqService_"; } | |
98 } | |
99 | |
100 #endregion | |
101 } | |
102 } |