2
2
// The .NET Foundation licenses this file to you under the MIT license.
3
3
// See the LICENSE file in the project root for more information.
4
4
5
- using System ;
6
5
using System . Diagnostics ;
7
6
using Microsoft . Data . Common ;
8
7
9
8
namespace Microsoft . Data . SqlClient
10
9
{
11
10
// SqlConnectionPoolKey: Implementation of a key to connection pool groups for specifically to be used for SqlConnection
12
11
// Connection string and SqlCredential are used as a key
13
- internal class SqlConnectionPoolKey : DbConnectionPoolKey , ICloneable
12
+ internal class SqlConnectionPoolKey : DbConnectionPoolKey
14
13
{
15
- private SqlCredential _credential ;
16
14
private int _hashValue ;
15
+ private readonly SqlCredential _credential ;
17
16
private readonly string _accessToken ;
18
- private ServerCertificateValidationCallback _serverCertificateValidationCallback ;
19
- private ClientCertificateRetrievalCallback _clientCertificateRetrievalCallback ;
20
- private SqlClientOriginalNetworkAddressInfo _originalNetworkAddressInfo ;
17
+
18
+ internal SqlCredential Credential => _credential ;
19
+ internal string AccessToken => _accessToken ;
20
+
21
+ internal override string ConnectionString
22
+ {
23
+ get => base . ConnectionString ;
24
+ set
25
+ {
26
+ base . ConnectionString = value ;
27
+ CalculateHashCode ( ) ;
28
+ }
29
+ }
30
+
31
+ #if NETFRAMEWORK
32
+ #region NET Framework
33
+ private readonly ServerCertificateValidationCallback _serverCertificateValidationCallback ;
34
+ private readonly ClientCertificateRetrievalCallback _clientCertificateRetrievalCallback ;
35
+ private readonly SqlClientOriginalNetworkAddressInfo _originalNetworkAddressInfo ;
36
+
37
+ internal ServerCertificateValidationCallback ServerCertificateValidationCallback
38
+ => _serverCertificateValidationCallback ;
39
+
40
+ internal ClientCertificateRetrievalCallback ClientCertificateRetrievalCallback
41
+ => _clientCertificateRetrievalCallback ;
42
+
43
+ internal SqlClientOriginalNetworkAddressInfo OriginalNetworkAddressInfo
44
+ => _originalNetworkAddressInfo ;
21
45
22
46
internal SqlConnectionPoolKey ( string connectionString ,
23
- SqlCredential credential ,
24
- string accessToken ,
25
- ServerCertificateValidationCallback serverCertificateValidationCallback ,
26
- ClientCertificateRetrievalCallback clientCertificateRetrievalCallback ,
27
- SqlClientOriginalNetworkAddressInfo originalNetworkAddressInfo ) : base ( connectionString )
47
+ SqlCredential credential ,
48
+ string accessToken ,
49
+ ServerCertificateValidationCallback serverCertificateValidationCallback ,
50
+ ClientCertificateRetrievalCallback clientCertificateRetrievalCallback ,
51
+ SqlClientOriginalNetworkAddressInfo originalNetworkAddressInfo ) : base ( connectionString )
28
52
{
29
53
Debug . Assert ( _credential == null || _accessToken == null , "Credential and AccessToken can't have the value at the same time." ) ;
30
54
_credential = credential ;
@@ -34,86 +58,47 @@ internal SqlConnectionPoolKey(string connectionString,
34
58
_originalNetworkAddressInfo = originalNetworkAddressInfo ;
35
59
CalculateHashCode ( ) ;
36
60
}
61
+ #endregion
62
+ #else
63
+ #region NET Core
64
+ internal SqlConnectionPoolKey ( string connectionString , SqlCredential credential , string accessToken ) : base ( connectionString )
65
+ {
66
+ Debug . Assert ( _credential == null || _accessToken == null , "Credential and AccessToken can't have the value at the same time." ) ;
67
+ _credential = credential ;
68
+ _accessToken = accessToken ;
69
+ CalculateHashCode ( ) ;
70
+ }
71
+ #endregion
72
+ #endif
37
73
38
74
private SqlConnectionPoolKey ( SqlConnectionPoolKey key ) : base ( key )
39
75
{
40
76
_credential = key . Credential ;
41
77
_accessToken = key . AccessToken ;
78
+ #if NETFRAMEWORK
42
79
_serverCertificateValidationCallback = key . _serverCertificateValidationCallback ;
43
80
_clientCertificateRetrievalCallback = key . _clientCertificateRetrievalCallback ;
81
+ #endif
44
82
CalculateHashCode ( ) ;
45
83
}
46
84
47
- object ICloneable . Clone ( )
85
+ public override object Clone ( )
48
86
{
49
87
return new SqlConnectionPoolKey ( this ) ;
50
88
}
51
89
52
- internal override string ConnectionString
53
- {
54
- get
55
- {
56
- return base . ConnectionString ;
57
- }
58
-
59
- set
60
- {
61
- base . ConnectionString = value ;
62
- CalculateHashCode ( ) ;
63
- }
64
- }
65
-
66
- internal SqlCredential Credential
67
- {
68
- get
69
- {
70
- return _credential ;
71
- }
72
- }
73
-
74
- internal string AccessToken
75
- {
76
- get
77
- {
78
- return _accessToken ;
79
- }
80
- }
81
-
82
- internal ServerCertificateValidationCallback ServerCertificateValidationCallback
83
- {
84
- get
85
- {
86
- return _serverCertificateValidationCallback ;
87
- }
88
- }
89
-
90
- internal ClientCertificateRetrievalCallback ClientCertificateRetrievalCallback
91
- {
92
- get
93
- {
94
- return _clientCertificateRetrievalCallback ;
95
- }
96
- }
97
-
98
- internal SqlClientOriginalNetworkAddressInfo OriginalNetworkAddressInfo
99
- {
100
- get
101
- {
102
- return _originalNetworkAddressInfo ;
103
- }
104
- }
105
-
106
90
public override bool Equals ( object obj )
107
91
{
108
- SqlConnectionPoolKey key = obj as SqlConnectionPoolKey ;
109
-
110
- return ( key != null &&
111
- _credential == key . _credential &&
112
- ConnectionString == key . ConnectionString &&
113
- string . CompareOrdinal ( _accessToken , key . _accessToken ) == 0 &&
114
- _serverCertificateValidationCallback == key . _serverCertificateValidationCallback &&
115
- _clientCertificateRetrievalCallback == key . _clientCertificateRetrievalCallback &&
116
- _originalNetworkAddressInfo == key . _originalNetworkAddressInfo ) ;
92
+ return ( obj is SqlConnectionPoolKey key
93
+ && _credential == key . _credential
94
+ && ConnectionString == key . ConnectionString
95
+ && string . CompareOrdinal ( _accessToken , key . _accessToken ) == 0
96
+ #if NETFRAMEWORK
97
+ & & _serverCertificateValidationCallback == key . _serverCertificateValidationCallback
98
+ && _clientCertificateRetrievalCallback == key . _clientCertificateRetrievalCallback
99
+ && _originalNetworkAddressInfo == key . _originalNetworkAddressInfo
100
+ #endif
101
+ ) ;
117
102
}
118
103
119
104
public override int GetHashCode ( )
@@ -140,13 +125,15 @@ private void CalculateHashCode()
140
125
}
141
126
}
142
127
128
+ #if NETFRAMEWORK
143
129
if ( _originalNetworkAddressInfo != null )
144
130
{
145
131
unchecked
146
132
{
147
133
_hashValue = _hashValue * 17 + _originalNetworkAddressInfo . GetHashCode ( ) ;
148
134
}
149
135
}
136
+ #endif
150
137
}
151
138
}
152
139
}
0 commit comments