Skip to content

Commit 542056a

Browse files
authored
Move to Shared for SqlConnectionPoolKey.cs (#1292)
1 parent 9942523 commit 542056a

File tree

4 files changed

+68
-174
lines changed

4 files changed

+68
-174
lines changed

src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@
256256
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs">
257257
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs</Link>
258258
</Compile>
259+
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs">
260+
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs</Link>
261+
</Compile>
259262
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs">
260263
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs</Link>
261264
</Compile>
@@ -550,7 +553,6 @@
550553
<Compile Include="Microsoft\Data\SqlClient\SqlConnection.cs" />
551554
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionFactory.cs" />
552555
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionHelper.cs" />
553-
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs" />
554556
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionString.cs" />
555557
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs">
556558
<Link>Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs</Link>

src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlConnectionPoolKey.cs

Lines changed: 0 additions & 97 deletions
This file was deleted.

src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,9 @@
342342
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs">
343343
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs</Link>
344344
</Compile>
345+
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs">
346+
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs</Link>
347+
</Compile>
345348
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs">
346349
<Link>Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs</Link>
347350
</Compile>
@@ -539,7 +542,6 @@
539542
<Compile Include="Microsoft\Data\SqlClient\SqlConnection.cs" />
540543
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionFactory.cs" />
541544
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionHelper.cs" />
542-
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs" />
543545
<Compile Include="Microsoft\Data\SqlClient\SqlConnectionString.cs" />
544546
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs">
545547
<Link>Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs</Link>
Lines changed: 62 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,53 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33
// See the LICENSE file in the project root for more information.
44

5-
using System;
65
using System.Diagnostics;
76
using Microsoft.Data.Common;
87

98
namespace Microsoft.Data.SqlClient
109
{
1110
// SqlConnectionPoolKey: Implementation of a key to connection pool groups for specifically to be used for SqlConnection
1211
// Connection string and SqlCredential are used as a key
13-
internal class SqlConnectionPoolKey : DbConnectionPoolKey, ICloneable
12+
internal class SqlConnectionPoolKey : DbConnectionPoolKey
1413
{
15-
private SqlCredential _credential;
1614
private int _hashValue;
15+
private readonly SqlCredential _credential;
1716
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;
2145

2246
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)
2852
{
2953
Debug.Assert(_credential == null || _accessToken == null, "Credential and AccessToken can't have the value at the same time.");
3054
_credential = credential;
@@ -34,86 +58,47 @@ internal SqlConnectionPoolKey(string connectionString,
3458
_originalNetworkAddressInfo = originalNetworkAddressInfo;
3559
CalculateHashCode();
3660
}
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
3773

3874
private SqlConnectionPoolKey(SqlConnectionPoolKey key) : base(key)
3975
{
4076
_credential = key.Credential;
4177
_accessToken = key.AccessToken;
78+
#if NETFRAMEWORK
4279
_serverCertificateValidationCallback = key._serverCertificateValidationCallback;
4380
_clientCertificateRetrievalCallback = key._clientCertificateRetrievalCallback;
81+
#endif
4482
CalculateHashCode();
4583
}
4684

47-
object ICloneable.Clone()
85+
public override object Clone()
4886
{
4987
return new SqlConnectionPoolKey(this);
5088
}
5189

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-
10690
public override bool Equals(object obj)
10791
{
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+
);
117102
}
118103

119104
public override int GetHashCode()
@@ -140,13 +125,15 @@ private void CalculateHashCode()
140125
}
141126
}
142127

128+
#if NETFRAMEWORK
143129
if (_originalNetworkAddressInfo != null)
144130
{
145131
unchecked
146132
{
147133
_hashValue = _hashValue * 17 + _originalNetworkAddressInfo.GetHashCode();
148134
}
149135
}
136+
#endif
150137
}
151138
}
152139
}

0 commit comments

Comments
 (0)