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 ; 
65using  System . Diagnostics ; 
76using  Microsoft . Data . Common ; 
87
98namespace  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