Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Ref classes for AE support in .NET Standard #756

Merged
merged 10 commits into from
Oct 19, 2020

Large diffs are not rendered by default.

131 changes: 131 additions & 0 deletions src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
<TargetGroup Condition="$(TargetFramework.StartsWith('netstandard'))">netstandard</TargetGroup>
<Platforms>AnyCPU;x64;x86</Platforms>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetGroup)' == 'netstandard' AND !$(TargetFramework.StartsWith('netstandard1.')) AND $(TargetFramework) != 'netstandard2.0'">
<DefineConstants>$(DefineConstants);NETSTANDARD21_AND_ABOVE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
<DefineConstants>$(DefineConstants);NETCOREAPP</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="Microsoft.Data.SqlClient.cs" />
<Compile Include="Microsoft.Data.SqlClient.Manual.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
<Product>Core $(BaseProduct)</Product>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
<DefineConstants>$(DefineConstants);netcoreapp;</DefineConstants>
<DefineConstants>$(DefineConstants);NETCOREAPP;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetGroup)' == 'netstandard'">
<DefineConstants>$(DefineConstants);netstandard;</DefineConstants>
<DefineConstants>$(DefineConstants);NETSTANDARD;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetGroup)' == 'netcoreapp' AND '$(TargetFramework)' != 'netcoreapp2.1'">
<DefineConstants>$(DefineConstants);NETCORE3</DefineConstants>
<PropertyGroup Condition="'$(TargetGroup)' == 'netcoreapp' AND !$(TargetFramework.StartsWith('netcoreapp2.'))">
<DefineConstants>$(DefineConstants);NETCOREAPP31_AND_ABOVE</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<DebugType>portable</DebugType>
Expand Down Expand Up @@ -234,15 +234,6 @@
<Compile Include="..\..\src\Microsoft\Data\SqlClient\Server\InvalidUdtException.cs">
<Link>Microsoft\Data\SqlClient\Server\InvalidUdtException.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs">
<Link>Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\EnclaveProviderBase.cs">
<Link>Microsoft\Data\SqlClient\EnclaveProviderBase.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\EnclaveSessionCache.cs">
<Link>Microsoft\Data\SqlClient\EnclaveSessionCache.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\SignatureVerificationCache.cs">
<Link>Microsoft\Data\SqlClient\SignatureVerificationCache.cs</Link>
</Compile>
Expand All @@ -260,6 +251,15 @@
<Compile Include="Microsoft\Data\SqlClient\TdsParser.NetStandard.cs" />
</ItemGroup>
<ItemGroup Condition="'$(OSGroup)' != 'AnyOS' AND '$(TargetFramework)' != 'netstandard2.0'">
<Compile Include="..\..\src\Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs">
<Link>Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\EnclaveProviderBase.cs">
<Link>Microsoft\Data\SqlClient\EnclaveProviderBase.cs</Link>
</Compile>
<Compile Include="..\..\src\Microsoft\Data\SqlClient\EnclaveSessionCache.cs">
<Link>Microsoft\Data\SqlClient\EnclaveSessionCache.cs</Link>
</Compile>
<Compile Include="Microsoft\Data\SqlClient\SqlColumnEncryptionEnclaveProvider.NetCoreApp.cs" />
<Compile Include="Microsoft\Data\SqlClient\SqlEnclaveAttestationParameters.NetCoreApp.cs" />
<Compile Include="Microsoft\Data\SqlClient\EnclaveDelegate.NetCoreApp.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,7 @@ internal static partial class DbConnectionStringKeywords
internal const string MaxPoolSize = "Max Pool Size";
internal const string Pooling = "Pooling";
internal const string MinPoolSize = "Min Pool Size";
#if netcoreapp
#if NETCOREAPP
internal const string PoolBlockingPeriod = "Pool Blocking Period";
#endif
}
Expand Down Expand Up @@ -839,7 +839,7 @@ internal static class DbConnectionStringSynonyms
internal const string NET = "net";
internal const string NETWORK = "network";

#if netcoreapp
#if NETCOREAPP
//internal const string PoolBlockingPeriod = POOLBLOCKINGPERIOD;
internal const string POOLBLOCKINGPERIOD = "PoolBlockingPeriod";
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,7 @@ public override void KillConnection()
internal static void SetKeepAliveValues(ref Socket socket)
{

#if NETCORE3
#if NETCOREAPP31_AND_ABOVE
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, 1);
socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, 30);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2532,7 +2532,7 @@ private void SetCachedCommandExecuteReaderAsyncContext(ExecuteReaderAsyncCallCon
}
}

/// <include file='../../../../../../../doc/snippets/Microsoft.Data.SqlClient/SqlCommand.xml' path='docs/members[@name="SqlCommand"]/ExecuteReaderAsync[@name="CancellationToken"]/*'/>
/// <include file='../../../../../../../doc/snippets/Microsoft.Data.SqlClient/SqlCommand.xml' path='docs/members[@name="SqlCommand"]/ExecuteScalarAsync[@name="CancellationToken"]/*'/>
public override Task<object> ExecuteScalarAsync(CancellationToken cancellationToken)
{
_parentOperationStarted = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ internal static class KEY
internal const string Application_Name = "application name";
internal const string AsynchronousProcessing = "asynchronous processing";
internal const string AttachDBFilename = "attachdbfilename";
#if netcoreapp
#if NETCOREAPP
internal const string PoolBlockingPeriod = "pool blocking period";
#endif
internal const string ColumnEncryptionSetting = "column encryption setting";
Expand Down Expand Up @@ -141,7 +141,7 @@ private static class SYNONYM
// network library
internal const string NET = "net";
internal const string NETWORK = "network";
#if netcoreapp
#if NETCOREAPP
// pool blocking period
internal const string POOLBLOCKINGPERIOD = "poolblockingperiod";
#endif
Expand All @@ -159,7 +159,7 @@ private static class SYNONYM
// make sure to update SynonymCount value below when adding or removing synonyms
}

#if netcoreapp
#if NETCOREAPP
internal const int SynonymCount = 25;
#else
internal const int SynonymCount = 24;
Expand Down Expand Up @@ -258,7 +258,7 @@ internal SqlConnectionString(string connectionString) : base(connectionString, G
}

_integratedSecurity = ConvertValueToIntegratedSecurity();
#if netcoreapp
#if NETCOREAPP
_poolBlockingPeriod = ConvertValueToPoolBlockingPeriod();
#endif
_encrypt = ConvertValueToBoolean(KEY.Encrypt, DEFAULT.Encrypt);
Expand Down Expand Up @@ -511,7 +511,7 @@ internal SqlConnectionString(SqlConnectionString connectionOptions, string dataS
_commandTimeout = connectionOptions._commandTimeout;
_connectTimeout = connectionOptions._connectTimeout;
_loadBalanceTimeout = connectionOptions._loadBalanceTimeout;
#if netcoreapp
#if NETCOREAPP
_poolBlockingPeriod = connectionOptions._poolBlockingPeriod;
#endif
_maxPoolSize = connectionOptions._maxPoolSize;
Expand Down Expand Up @@ -650,7 +650,7 @@ internal static Dictionary<string, string> GetParseSynonyms()
{ KEY.Application_Name, KEY.Application_Name },
{ KEY.AsynchronousProcessing, KEY.AsynchronousProcessing },
{ KEY.AttachDBFilename, KEY.AttachDBFilename },
#if netcoreapp
#if NETCOREAPP
{ KEY.PoolBlockingPeriod, KEY.PoolBlockingPeriod},
#endif
{ KEY.Command_Timeout, KEY.Command_Timeout },
Expand Down Expand Up @@ -703,7 +703,7 @@ internal static Dictionary<string, string> GetParseSynonyms()
{ SYNONYM.MULTIPLEACTIVERESULTSETS, KEY.MARS },
{ SYNONYM.MULTISUBNETFAILOVER, KEY.MultiSubnetFailover },
{ SYNONYM.NETWORK_ADDRESS, KEY.Data_Source },
#if netcoreapp
#if NETCOREAPP
{ SYNONYM.POOLBLOCKINGPERIOD, KEY.PoolBlockingPeriod},
#endif
{ SYNONYM.SERVER, KEY.Data_Source },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ private enum Keywords
Pooling,
MinPoolSize,
MaxPoolSize,
#if netcoreapp
#if NETCOREAPP
PoolBlockingPeriod,
#endif
MultipleActiveResultSets,
Expand Down Expand Up @@ -114,7 +114,7 @@ private static string[] CreateValidKeywords()
validKeywords[(int)Keywords.ApplicationIntent] = DbConnectionStringKeywords.ApplicationIntent;
validKeywords[(int)Keywords.ApplicationName] = DbConnectionStringKeywords.ApplicationName;
validKeywords[(int)Keywords.AttachDBFilename] = DbConnectionStringKeywords.AttachDBFilename;
#if netcoreapp
#if NETCOREAPP
validKeywords[(int)Keywords.PoolBlockingPeriod] = DbConnectionStringKeywords.PoolBlockingPeriod;
#endif
validKeywords[(int)Keywords.CommandTimeout] = DbConnectionStringKeywords.CommandTimeout;
Expand Down Expand Up @@ -158,7 +158,7 @@ private static Dictionary<string, Keywords> CreateKeywordsDictionary()
hash.Add(DbConnectionStringKeywords.ApplicationIntent, Keywords.ApplicationIntent);
hash.Add(DbConnectionStringKeywords.ApplicationName, Keywords.ApplicationName);
hash.Add(DbConnectionStringKeywords.AttachDBFilename, Keywords.AttachDBFilename);
#if netcoreapp
#if NETCOREAPP
hash.Add(DbConnectionStringKeywords.PoolBlockingPeriod, Keywords.PoolBlockingPeriod);
#endif
hash.Add(DbConnectionStringKeywords.CommandTimeout, Keywords.CommandTimeout);
Expand Down Expand Up @@ -208,7 +208,7 @@ private static Dictionary<string, Keywords> CreateKeywordsDictionary()
hash.Add(DbConnectionStringSynonyms.MULTIPLEACTIVERESULTSETS, Keywords.MultipleActiveResultSets);
hash.Add(DbConnectionStringSynonyms.MULTISUBNETFAILOVER, Keywords.MultiSubnetFailover);
hash.Add(DbConnectionStringSynonyms.NETWORKADDRESS, Keywords.DataSource);
#if netcoreapp
#if NETCOREAPP
hash.Add(DbConnectionStringSynonyms.POOLBLOCKINGPERIOD, Keywords.PoolBlockingPeriod);
#endif
hash.Add(DbConnectionStringSynonyms.SERVER, Keywords.DataSource);
Expand Down Expand Up @@ -326,7 +326,7 @@ public override object this[string keyword]
case Keywords.AttestationProtocol:
AttestationProtocol = ConvertToAttestationProtocol(keyword, value);
break;
#if netcoreapp
#if NETCOREAPP
case Keywords.PoolBlockingPeriod: PoolBlockingPeriod = ConvertToPoolBlockingPeriod(keyword, value); break;
#endif
case Keywords.Encrypt:
Expand Down Expand Up @@ -914,7 +914,7 @@ private object GetAt(Keywords index)
return ApplicationName;
case Keywords.AttachDBFilename:
return AttachDBFilename;
#if netcoreapp
#if NETCOREAPP
case Keywords.PoolBlockingPeriod: return PoolBlockingPeriod;
#endif
case Keywords.CommandTimeout:
Expand Down Expand Up @@ -1029,7 +1029,7 @@ private void Reset(Keywords index)
case Keywords.Authentication:
_authentication = DbConnectionStringDefaults.Authentication;
break;
#if netcoreapp
#if NETCOREAPP
case Keywords.PoolBlockingPeriod:
_poolBlockingPeriod = DbConnectionStringDefaults.PoolBlockingPeriod;
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1658,7 +1658,7 @@ internal void WriteInt(int v, TdsParserStateObject stateObj)

internal static void WriteInt(Span<byte> buffer, int value)
{
#if netcoreapp
#if NETCOREAPP
BitConverter.TryWriteBytes(buffer, value);
#else
buffer[0] = (byte)(value & 0xff);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ internal void SetDateTime(DateTime value)
_stateObj.Parser.WriteInt(dt.time, _stateObj);
}

// Clean the variant metadata to prevent sharing it with next row.
// Clean the variant metadata to prevent sharing it with next row.
// As a reminder, SetVariantType raises an assert if _variantType is not clean
_variantType = null;
}
Expand Down Expand Up @@ -601,7 +601,7 @@ internal void SetGuid(Guid value)
Debug.Assert(
SmiXetterAccessMap.IsSetterAccessValid(_metaData, SmiXetterTypeCode.XetGuid));

#if netcoreapp
#if NETCOREAPP

Span<byte> bytes = stackalloc byte[16];
value.TryWriteBytes(bytes);
Expand All @@ -620,7 +620,7 @@ internal void SetGuid(Guid value)

_stateObj.WriteByte((byte)_metaData.MaxLength);
}
#if netcoreapp
#if NETCOREAPP
_stateObj.WriteByteSpan(bytes);
#else
_stateObj.WriteByteArray(bytes, bytes.Length, 0);
Expand Down Expand Up @@ -660,7 +660,7 @@ internal void SetDateTimeOffset(DateTimeOffset value)
byte length;
if (SqlDbType.Variant == _metaData.SqlDbType)
{
// VSTFDevDiv #885208 - DateTimeOffset throws ArgumentException for when passing DateTimeOffset value to a sql_variant TVP
// VSTFDevDiv #885208 - DateTimeOffset throws ArgumentException for when passing DateTimeOffset value to a sql_variant TVP
// using a SqlDataRecord or SqlDataReader
SmiMetaData dateTimeOffsetMetaData = SmiMetaData.DefaultDateTimeOffset;
scale = MetaType.MetaDateTimeOffset.Scale;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<!-- ResolveComReferenceSilent suppresses warnings thrown due to the inclusion of mscoree.
We should remove ResolveComReferenceSilent as soon as we can remove the dependency on mscoree. -->
<ResolveComReferenceSilent>True</ResolveComReferenceSilent>
<DefineConstants>$(DefineConstants);netfx;</DefineConstants>
<DefineConstants>$(DefineConstants);NETFRAMEWORK;</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<!-- CSC Compiler Options -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3022,7 +3022,7 @@ protected override Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior b
return returnedTask;
}

/// <include file='../../../../../../../doc/snippets/Microsoft.Data.SqlClient/SqlCommand.xml' path='docs/members[@name="SqlCommand"]/ExecuteReaderAsync[@name="CancellationToken"]/*'/>
/// <include file='../../../../../../../doc/snippets/Microsoft.Data.SqlClient/SqlCommand.xml' path='docs/members[@name="SqlCommand"]/ExecuteScalarAsync[@name="CancellationToken"]/*'/>
public override Task<object> ExecuteScalarAsync(CancellationToken cancellationToken)
{
return ExecuteReaderAsync(cancellationToken).ContinueWith((executeTask) =>
Expand Down
Loading