From cbc47d91d0ea5602b3ad876c89e29027e5494651 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Thu, 25 Sep 2025 21:48:25 +0100 Subject: [PATCH 1/5] Remove references to StringsHelper.ResourceNames --- .../Microsoft/Data/SqlClient/SqlCommand.cs | 38 ++--- .../Data/SqlClient/SqlCommandBuilder.cs | 4 +- .../Microsoft/Data/SqlClient/SqlConnection.cs | 60 +++---- .../SqlClient/SqlConnectionStringBuilder.cs | 160 +++++++++--------- .../Data/SqlClient/SqlDataAdapter.cs | 24 +-- .../Microsoft/Data/SqlClient/SqlParameter.cs | 30 ++-- 6 files changed, 158 insertions(+), 158 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs index ef39945ea4..b45c97fc77 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs @@ -198,8 +198,8 @@ public sealed partial class SqlCommand : DbCommand, ICloneable #region Events /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_StatementCompleted)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_StatementCompleted)] + [ResCategory(nameof(Strings.DataCategory_StatementCompleted))] + [ResDescription(nameof(Strings.DbCommand_StatementCompleted))] public event StatementCompletedEventHandler StatementCompleted { add @@ -242,13 +242,13 @@ private enum EXECTYPE /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.TCE_SqlCommand_ColumnEncryptionSetting)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.TCE_SqlCommand_ColumnEncryptionSetting))] public SqlCommandColumnEncryptionSetting ColumnEncryptionSetting => _columnEncryptionSetting; /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_CommandTimeout)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.DbCommand_CommandTimeout))] public override int CommandTimeout { get => _commandTimeout ?? DefaultCommandTimeout; @@ -276,8 +276,8 @@ public override int CommandTimeout /// [DefaultValue("")] [RefreshProperties(RefreshProperties.All)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_CommandText)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.DbCommand_CommandText))] public override string CommandText { get => _commandText ?? string.Empty; @@ -300,8 +300,8 @@ public override string CommandText /// [DefaultValue(CommandType.Text)] [RefreshProperties(RefreshProperties.All)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_CommandType)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.DbCommand_CommandType))] public override CommandType CommandType { get => _commandType != 0 ? _commandType : CommandType.Text; @@ -334,8 +334,8 @@ public override CommandType CommandType /// [DefaultValue(null)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_Connection)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.DbCommand_Connection))] public new SqlConnection Connection { get => _activeConnection; @@ -417,8 +417,8 @@ public override bool DesignTimeVisible /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Notification)] - [ResDescription(StringsHelper.ResourceNames.SqlCommand_Notification)] + [ResCategory(nameof(Strings.DataCategory_Notification))] + [ResDescription(nameof(Strings.SqlCommand_Notification))] public SqlNotificationRequest Notification { get => _notification; @@ -446,8 +446,8 @@ public bool NotificationAutoEnlist /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_Parameters)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.DbCommand_Parameters))] public new SqlParameterCollection Parameters { get @@ -475,7 +475,7 @@ public SqlRetryLogicBaseProvider RetryLogicProvider /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_Transaction)] + [ResDescription(nameof(Strings.DbCommand_Transaction))] public new SqlTransaction Transaction { get @@ -513,8 +513,8 @@ public SqlRetryLogicBaseProvider RetryLogicProvider /// [DefaultValue(UpdateRowSource.Both)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_UpdatedRowSource)] + [ResCategory(nameof(Strings.DataCategory_Update))] + [ResDescription(nameof(Strings.DbCommand_UpdatedRowSource))] public override UpdateRowSource UpdatedRowSource { get => _updatedRowSource; diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommandBuilder.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommandBuilder.cs index 9e2a14b3ab..4ba8f27d79 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommandBuilder.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommandBuilder.cs @@ -80,8 +80,8 @@ public override string CatalogSeparator /// [ DefaultValue(null), - ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update), - ResDescriptionAttribute(StringsHelper.ResourceNames.SqlCommandBuilder_DataAdapter), + ResCategoryAttribute(nameof(Strings.DataCategory_Update)), + ResDescriptionAttribute(nameof(Strings.SqlCommandBuilder_DataAdapter)), ] public new SqlDataAdapter DataAdapter { diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnection.cs index d8e742e3d5..4021644113 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnection.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnection.cs @@ -150,20 +150,20 @@ public SqlRetryLogicBaseProvider RetryLogicProvider /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.TCE_SqlConnection_ColumnEncryptionKeyCacheTtl)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.TCE_SqlConnection_ColumnEncryptionKeyCacheTtl))] public static TimeSpan ColumnEncryptionKeyCacheTtl { get; set; } = TimeSpan.FromHours(2); /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.TCE_SqlConnection_ColumnEncryptionQueryMetadataCacheEnabled)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.TCE_SqlConnection_ColumnEncryptionQueryMetadataCacheEnabled))] public static bool ColumnEncryptionQueryMetadataCacheEnabled { get; set; } = true; /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.TCE_SqlConnection_TrustedColumnMasterKeyPaths)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.TCE_SqlConnection_TrustedColumnMasterKeyPaths))] public static IDictionary> ColumnEncryptionTrustedMasterKeyPaths => _ColumnEncryptionTrustedMasterKeyPaths; /// @@ -464,8 +464,8 @@ private void CacheConnectionStringProperties() // connect the parser to the object. // if there is no parser at this time we need to connect it after creation. [DefaultValue(false)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_StatisticsEnabled)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.SqlConnection_StatisticsEnabled))] public bool StatisticsEnabled { get @@ -600,8 +600,8 @@ internal int ConnectRetryInterval #pragma warning restore 618 [SettingsBindableAttribute(true)] [RefreshProperties(RefreshProperties.All)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ConnectionString)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.SqlConnection_ConnectionString))] public override string ConnectionString { get @@ -668,8 +668,8 @@ public override string ConnectionString } /// - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ConnectionTimeout)] - [ResCategory(StringsHelper.ResourceNames.SqlConnection_DataSource)] + [ResDescription(nameof(Strings.SqlConnection_ConnectionTimeout))] + [ResCategory(nameof(Strings.SqlConnection_DataSource))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override int ConnectionTimeout { @@ -682,7 +682,7 @@ public override int ConnectionTimeout /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ConnectionTimeout)] + [ResDescription(nameof(Strings.SqlConnection_ConnectionTimeout))] public int CommandTimeout { get @@ -696,7 +696,7 @@ public int CommandTimeout // AccessToken: To be used for token based authentication [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_AccessToken)] + [ResDescription(nameof(Strings.SqlConnection_AccessToken))] public string AccessToken { get @@ -760,8 +760,8 @@ internal SspiContextProvider SspiContextProvider } /// - [ResDescription(StringsHelper.ResourceNames.SqlConnection_Database)] - [ResCategory(StringsHelper.ResourceNames.SqlConnection_DataSource)] + [ResDescription(nameof(Strings.SqlConnection_Database))] + [ResCategory(nameof(Strings.SqlConnection_DataSource))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override string Database { @@ -837,8 +837,8 @@ internal string SQLDNSCachingSupportedStateBeforeRedirect /// [Browsable(true)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_DataSource)] - [ResCategory(StringsHelper.ResourceNames.SqlConnection_DataSource)] + [ResDescription(nameof(Strings.SqlConnection_DataSource))] + [ResCategory(nameof(Strings.SqlConnection_DataSource))] public override string DataSource { get @@ -860,8 +860,8 @@ public override string DataSource } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_PacketSize)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.SqlConnection_PacketSize))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int PacketSize { @@ -887,8 +887,8 @@ public int PacketSize } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ClientConnectionId)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.SqlConnection_ClientConnectionId))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Guid ClientConnectionId { @@ -917,7 +917,7 @@ public Guid ClientConnectionId /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ServerVersion)] + [ResDescription(nameof(Strings.SqlConnection_ServerVersion))] public override string ServerVersion { get => GetOpenTdsConnection().ServerVersion; @@ -925,7 +925,7 @@ public override string ServerVersion /// [Browsable(false)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_ServerProcessId)] + [ResDescription(nameof(Strings.SqlConnection_ServerProcessId))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int ServerProcessId { @@ -941,7 +941,7 @@ public int ServerProcessId /// [Browsable(false)] - [ResDescription(StringsHelper.ResourceNames.DbConnection_State)] + [ResDescription(nameof(Strings.DbConnection_State))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override ConnectionState State { @@ -963,8 +963,8 @@ internal SqlStatistics Statistics } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_WorkstationId)] + [ResCategory(nameof(Strings.DataCategory_Data))] + [ResDescription(nameof(Strings.SqlConnection_WorkstationId))] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public string WorkstationId { @@ -985,7 +985,7 @@ public string WorkstationId /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - [ResDescription(StringsHelper.ResourceNames.SqlConnection_Credential)] + [ResDescription(nameof(Strings.SqlConnection_Credential))] public SqlCredential Credential { get @@ -1150,8 +1150,8 @@ protected override DbProviderFactory DbProviderFactory // /// - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_InfoMessage)] - [ResDescription(StringsHelper.ResourceNames.DbConnection_InfoMessage)] + [ResCategoryAttribute(nameof(Strings.DataCategory_InfoMessage))] + [ResDescription(nameof(Strings.DbConnection_InfoMessage))] #if NET public event SqlInfoMessageEventHandler InfoMessage; #else diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs index 177075e48c..358a581c57 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs @@ -1087,8 +1087,8 @@ public override object this[string keyword] /// [DisplayName(DbConnectionStringKeywords.ApplicationIntent)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Initialization)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ApplicationIntent)] + [ResCategory(nameof(Strings.DataCategory_Initialization))] + [ResDescription(nameof(Strings.DbConnectionString_ApplicationIntent))] [RefreshProperties(RefreshProperties.All)] public ApplicationIntent ApplicationIntent { @@ -1107,8 +1107,8 @@ public ApplicationIntent ApplicationIntent /// [DisplayName(DbConnectionStringKeywords.ApplicationName)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Context)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ApplicationName)] + [ResCategory(nameof(Strings.DataCategory_Context))] + [ResDescription(nameof(Strings.DbConnectionString_ApplicationName))] [RefreshProperties(RefreshProperties.All)] public string ApplicationName { @@ -1122,8 +1122,8 @@ public string ApplicationName /// [DisplayName(DbConnectionStringKeywords.AttachDbFilename)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_AttachDBFilename)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_AttachDBFilename))] [Editor("System.Windows.Forms.Design.FileNameEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] [RefreshProperties(RefreshProperties.All)] public string AttachDBFilename @@ -1138,8 +1138,8 @@ public string AttachDBFilename /// [DisplayName(DbConnectionStringKeywords.CommandTimeout)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Initialization)] - [ResDescription(StringsHelper.ResourceNames.DbCommand_CommandTimeout)] + [ResCategory(nameof(Strings.DataCategory_Initialization))] + [ResDescription(nameof(Strings.DbCommand_CommandTimeout))] [RefreshProperties(RefreshProperties.All)] public int CommandTimeout { @@ -1157,8 +1157,8 @@ public int CommandTimeout /// [DisplayName(DbConnectionStringKeywords.ConnectTimeout)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Initialization)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ConnectTimeout)] + [ResCategory(nameof(Strings.DataCategory_Initialization))] + [ResDescription(nameof(Strings.DbConnectionString_ConnectTimeout))] [RefreshProperties(RefreshProperties.All)] public int ConnectTimeout { @@ -1176,8 +1176,8 @@ public int ConnectTimeout /// [DisplayName(DbConnectionStringKeywords.CurrentLanguage)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Initialization)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_CurrentLanguage)] + [ResCategory(nameof(Strings.DataCategory_Initialization))] + [ResDescription(nameof(Strings.DbConnectionString_CurrentLanguage))] [RefreshProperties(RefreshProperties.All)] public string CurrentLanguage { @@ -1191,8 +1191,8 @@ public string CurrentLanguage /// [DisplayName(DbConnectionStringKeywords.DataSource)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_DataSource)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_DataSource))] [RefreshProperties(RefreshProperties.All)] [TypeConverter("Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlDataSourceConverter, Microsoft.Data.SqlClient")] public string DataSource @@ -1207,8 +1207,8 @@ public string DataSource /// [DisplayName(DbConnectionStringKeywords.ServerSpn)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ServerSPN)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_ServerSPN))] [RefreshProperties(RefreshProperties.All)] public string ServerSPN { @@ -1222,8 +1222,8 @@ public string ServerSPN /// [DisplayName(DbConnectionStringKeywords.Encrypt)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Encrypt)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_Encrypt))] [RefreshProperties(RefreshProperties.All)] public SqlConnectionEncryptOption Encrypt { @@ -1238,8 +1238,8 @@ public SqlConnectionEncryptOption Encrypt /// [DisplayName(DbConnectionStringKeywords.HostNameInCertificate)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_HostNameInCertificate)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_HostNameInCertificate))] [RefreshProperties(RefreshProperties.All)] public string HostNameInCertificate { @@ -1253,8 +1253,8 @@ public string HostNameInCertificate /// [DisplayName(DbConnectionStringKeywords.ServerCertificate)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ServerCertificate)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_ServerCertificate))] [RefreshProperties(RefreshProperties.All)] public string ServerCertificate { @@ -1268,8 +1268,8 @@ public string ServerCertificate /// [DisplayName(DbConnectionStringKeywords.ColumnEncryptionSetting)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.TCE_DbConnectionString_ColumnEncryptionSetting)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.TCE_DbConnectionString_ColumnEncryptionSetting))] [RefreshProperties(RefreshProperties.All)] public SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting { @@ -1288,8 +1288,8 @@ public SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting /// [DisplayName(DbConnectionStringKeywords.EnclaveAttestationUrl)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.TCE_DbConnectionString_EnclaveAttestationUrl)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.TCE_DbConnectionString_EnclaveAttestationUrl))] [RefreshProperties(RefreshProperties.All)] public string EnclaveAttestationUrl { @@ -1303,8 +1303,8 @@ public string EnclaveAttestationUrl /// [DisplayName(DbConnectionStringKeywords.AttestationProtocol)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.TCE_DbConnectionString_AttestationProtocol)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.TCE_DbConnectionString_AttestationProtocol))] [RefreshProperties(RefreshProperties.All)] public SqlConnectionAttestationProtocol AttestationProtocol { @@ -1323,8 +1323,8 @@ public SqlConnectionAttestationProtocol AttestationProtocol /// [DisplayName(DbConnectionStringKeywords.IpAddressPreference)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.TCE_DbConnectionString_IPAddressPreference)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.TCE_DbConnectionString_IPAddressPreference))] [RefreshProperties(RefreshProperties.All)] public SqlConnectionIPAddressPreference IPAddressPreference { @@ -1343,8 +1343,8 @@ public SqlConnectionIPAddressPreference IPAddressPreference /// [DisplayName(DbConnectionStringKeywords.TrustServerCertificate)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_TrustServerCertificate)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_TrustServerCertificate))] [RefreshProperties(RefreshProperties.All)] public bool TrustServerCertificate { @@ -1358,8 +1358,8 @@ public bool TrustServerCertificate /// [DisplayName(DbConnectionStringKeywords.Enlist)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Enlist)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_Enlist))] [RefreshProperties(RefreshProperties.All)] public bool Enlist { @@ -1373,8 +1373,8 @@ public bool Enlist /// [DisplayName(DbConnectionStringKeywords.FailoverPartner)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_FailoverPartner)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_FailoverPartner))] [RefreshProperties(RefreshProperties.All)] [TypeConverter("Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlDataSourceConverter, Microsoft.Data.SqlClient")] public string FailoverPartner @@ -1389,8 +1389,8 @@ public string FailoverPartner /// [DisplayName(DbConnectionStringKeywords.FailoverPartnerSpn)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_FailoverPartnerSPN)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_FailoverPartnerSPN))] [RefreshProperties(RefreshProperties.All)] public string FailoverPartnerSPN { @@ -1404,8 +1404,8 @@ public string FailoverPartnerSPN /// [DisplayName(DbConnectionStringKeywords.InitialCatalog)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_InitialCatalog)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_InitialCatalog))] [RefreshProperties(RefreshProperties.All)] [TypeConverter(typeof(SqlInitialCatalogConverter))] public string InitialCatalog @@ -1420,8 +1420,8 @@ public string InitialCatalog /// [DisplayName(DbConnectionStringKeywords.IntegratedSecurity)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_IntegratedSecurity)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_IntegratedSecurity))] [RefreshProperties(RefreshProperties.All)] public bool IntegratedSecurity { @@ -1435,8 +1435,8 @@ public bool IntegratedSecurity /// [DisplayName(DbConnectionStringKeywords.Authentication)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Authentication)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_Authentication))] [RefreshProperties(RefreshProperties.All)] public SqlAuthenticationMethod Authentication { @@ -1455,8 +1455,8 @@ public SqlAuthenticationMethod Authentication /// [DisplayName(DbConnectionStringKeywords.LoadBalanceTimeout)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_LoadBalanceTimeout)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_LoadBalanceTimeout))] [RefreshProperties(RefreshProperties.All)] public int LoadBalanceTimeout { @@ -1474,8 +1474,8 @@ public int LoadBalanceTimeout /// [DisplayName(DbConnectionStringKeywords.MaxPoolSize)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_MaxPoolSize)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_MaxPoolSize))] [RefreshProperties(RefreshProperties.All)] public int MaxPoolSize { @@ -1493,8 +1493,8 @@ public int MaxPoolSize /// [DisplayName(DbConnectionStringKeywords.ConnectRetryCount)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_ConnectionResiliency)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ConnectRetryCount)] + [ResCategory(nameof(Strings.DataCategory_ConnectionResiliency))] + [ResDescription(nameof(Strings.DbConnectionString_ConnectRetryCount))] [RefreshProperties(RefreshProperties.All)] public int ConnectRetryCount { @@ -1512,8 +1512,8 @@ public int ConnectRetryCount /// [DisplayName(DbConnectionStringKeywords.ConnectRetryInterval)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_ConnectionResiliency)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ConnectRetryInterval)] + [ResCategory(nameof(Strings.DataCategory_ConnectionResiliency))] + [ResDescription(nameof(Strings.DbConnectionString_ConnectRetryInterval))] [RefreshProperties(RefreshProperties.All)] public int ConnectRetryInterval { @@ -1532,8 +1532,8 @@ public int ConnectRetryInterval /// [DisplayName(DbConnectionStringKeywords.MinPoolSize)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_MinPoolSize)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_MinPoolSize))] [RefreshProperties(RefreshProperties.All)] public int MinPoolSize { @@ -1551,8 +1551,8 @@ public int MinPoolSize /// [DisplayName(DbConnectionStringKeywords.MultipleActiveResultSets)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Advanced)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_MultipleActiveResultSets)] + [ResCategory(nameof(Strings.DataCategory_Advanced))] + [ResDescription(nameof(Strings.DbConnectionString_MultipleActiveResultSets))] [RefreshProperties(RefreshProperties.All)] public bool MultipleActiveResultSets { @@ -1567,8 +1567,8 @@ public bool MultipleActiveResultSets /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Justification = "Reviewed and Approved by UE")] [DisplayName(DbConnectionStringKeywords.MultiSubnetFailover)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_MultiSubnetFailover)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_MultiSubnetFailover))] [RefreshProperties(RefreshProperties.All)] public bool MultiSubnetFailover { @@ -1582,8 +1582,8 @@ public bool MultiSubnetFailover /// [DisplayName(DbConnectionStringKeywords.PacketSize)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Advanced)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_PacketSize)] + [ResCategory(nameof(Strings.DataCategory_Advanced))] + [ResDescription(nameof(Strings.DbConnectionString_PacketSize))] [RefreshProperties(RefreshProperties.All)] public int PacketSize { @@ -1601,8 +1601,8 @@ public int PacketSize /// [DisplayName(DbConnectionStringKeywords.Password)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Password)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_Password))] [PasswordPropertyText(true)] [RefreshProperties(RefreshProperties.All)] public string Password @@ -1617,8 +1617,8 @@ public string Password /// [DisplayName(DbConnectionStringKeywords.PersistSecurityInfo)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_PersistSecurityInfo)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_PersistSecurityInfo))] [RefreshProperties(RefreshProperties.All)] public bool PersistSecurityInfo { @@ -1632,8 +1632,8 @@ public bool PersistSecurityInfo /// [DisplayName(DbConnectionStringKeywords.PoolBlockingPeriod)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_PoolBlockingPeriod)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_PoolBlockingPeriod))] [RefreshProperties(RefreshProperties.All)] public PoolBlockingPeriod PoolBlockingPeriod { @@ -1652,8 +1652,8 @@ public PoolBlockingPeriod PoolBlockingPeriod /// [DisplayName(DbConnectionStringKeywords.Pooling)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Pooling)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_Pooling))] [RefreshProperties(RefreshProperties.All)] public bool Pooling { @@ -1667,8 +1667,8 @@ public bool Pooling /// [DisplayName(DbConnectionStringKeywords.Replication)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Replication)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_Replication)] + [ResCategory(nameof(Strings.DataCategory_Replication))] + [ResDescription(nameof(Strings.DbConnectionString_Replication))] [RefreshProperties(RefreshProperties.All)] public bool Replication { @@ -1682,8 +1682,8 @@ public bool Replication /// [DisplayName(DbConnectionStringKeywords.TransactionBinding)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Advanced)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_TransactionBinding)] + [ResCategory(nameof(Strings.DataCategory_Advanced))] + [ResDescription(nameof(Strings.DbConnectionString_TransactionBinding))] [RefreshProperties(RefreshProperties.All)] public string TransactionBinding { @@ -1697,8 +1697,8 @@ public string TransactionBinding /// [DisplayName(DbConnectionStringKeywords.TypeSystemVersion)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Advanced)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_TypeSystemVersion)] + [ResCategory(nameof(Strings.DataCategory_Advanced))] + [ResDescription(nameof(Strings.DbConnectionString_TypeSystemVersion))] [RefreshProperties(RefreshProperties.All)] public string TypeSystemVersion { @@ -1712,8 +1712,8 @@ public string TypeSystemVersion /// [DisplayName(DbConnectionStringKeywords.UserId)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Security)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_UserID)] + [ResCategory(nameof(Strings.DataCategory_Security))] + [ResDescription(nameof(Strings.DbConnectionString_UserID))] [RefreshProperties(RefreshProperties.All)] public string UserID { @@ -1727,8 +1727,8 @@ public string UserID /// [DisplayName(DbConnectionStringKeywords.UserInstance)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_UserInstance)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_UserInstance))] [RefreshProperties(RefreshProperties.All)] public bool UserInstance { @@ -1742,8 +1742,8 @@ public bool UserInstance /// [DisplayName(DbConnectionStringKeywords.WorkstationId)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Context)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_WorkstationID)] + [ResCategory(nameof(Strings.DataCategory_Context))] + [ResDescription(nameof(Strings.DbConnectionString_WorkstationID))] [RefreshProperties(RefreshProperties.All)] public string WorkstationID { diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataAdapter.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataAdapter.cs index 9e13de3e69..01abf3ded7 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataAdapter.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataAdapter.cs @@ -65,8 +65,8 @@ private SqlDataAdapter(SqlDataAdapter from) : base(from) /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_DeleteCommand)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Update))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_DeleteCommand))] new public SqlCommand DeleteCommand { get { return _deleteCommand; } @@ -82,8 +82,8 @@ IDbCommand IDbDataAdapter.DeleteCommand /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_InsertCommand)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Update))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_InsertCommand))] new public SqlCommand InsertCommand { get { return _insertCommand; } @@ -99,8 +99,8 @@ IDbCommand IDbDataAdapter.InsertCommand /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Fill)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_SelectCommand)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Fill))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_SelectCommand))] new public SqlCommand SelectCommand { get { return _selectCommand; } @@ -116,8 +116,8 @@ IDbCommand IDbDataAdapter.SelectCommand /// [DefaultValue(null)] - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_UpdateCommand)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Update))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_UpdateCommand))] new public SqlCommand UpdateCommand { get { return _updateCommand; } @@ -242,8 +242,8 @@ protected override RowUpdatingEventArgs CreateRowUpdatingEvent(DataRow dataRow, } /// - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_RowUpdated)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Update))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_RowUpdated))] public event SqlRowUpdatedEventHandler RowUpdated { add @@ -257,8 +257,8 @@ public event SqlRowUpdatedEventHandler RowUpdated } /// - [ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Update)] - [ResDescriptionAttribute(StringsHelper.ResourceNames.DbDataAdapter_RowUpdating)] + [ResCategoryAttribute(nameof(Strings.DataCategory_Update))] + [ResDescriptionAttribute(nameof(Strings.DbDataAdapter_RowUpdating))] public event SqlRowUpdatingEventHandler RowUpdating { add diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs index fb9cdbb8e0..8d5c79546c 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs @@ -426,7 +426,7 @@ public SqlCompareOptions CompareInfo } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Xml)] + [ResCategory(nameof(Strings.DataCategory_Xml))] public string XmlSchemaCollectionDatabase { get => _xmlSchemaCollection?.Database ?? string.Empty; @@ -434,7 +434,7 @@ public string XmlSchemaCollectionDatabase } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Xml)] + [ResCategory(nameof(Strings.DataCategory_Xml))] public string XmlSchemaCollectionOwningSchema { get => _xmlSchemaCollection?.OwningSchema ?? string.Empty; @@ -442,7 +442,7 @@ public string XmlSchemaCollectionOwningSchema } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Xml)] + [ResCategory(nameof(Strings.DataCategory_Xml))] public string XmlSchemaCollectionName { get => _xmlSchemaCollection?.Name ?? string.Empty; @@ -452,7 +452,7 @@ public string XmlSchemaCollectionName /// [ DefaultValue(false), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data) + ResCategory(nameof(Strings.DataCategory_Data)) ] public bool ForceColumnEncryption { @@ -479,7 +479,7 @@ public override DbType DbType public override void ResetDbType() => ResetSqlDbType(); /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] + [ResCategory(nameof(Strings.DataCategory_Data))] public override string ParameterName { get => _parameterName ?? string.Empty; @@ -540,7 +540,7 @@ public int LocaleId /// [ DefaultValue((byte)0), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data) + ResCategory(nameof(Strings.DataCategory_Data)) ] public new byte Precision { @@ -553,7 +553,7 @@ public int LocaleId /// [ DefaultValue((byte)0), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data) + ResCategory(nameof(Strings.DataCategory_Data)) ] public new byte Scale { @@ -600,7 +600,7 @@ private bool ShouldSerializeScale() /// [ RefreshProperties(RefreshProperties.All), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data), + ResCategory(nameof(Strings.DataCategory_Data)), DbProviderSpecificTypeProperty(true) ] public SqlDbType SqlDbType @@ -720,7 +720,7 @@ public string TypeName /// [ RefreshProperties(RefreshProperties.All), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data), + ResCategory(nameof(Strings.DataCategory_Data)), TypeConverter(typeof(StringConverter)), ] public override object Value @@ -790,7 +790,7 @@ private object GetVectorReturnValue() /// [ RefreshProperties(RefreshProperties.All), - ResCategory(StringsHelper.ResourceNames.DataCategory_Data), + ResCategory(nameof(Strings.DataCategory_Data)), ] public override ParameterDirection Direction { @@ -837,7 +837,7 @@ public int Offset } /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Data)] + [ResCategory(nameof(Strings.DataCategory_Data))] public override int Size { get @@ -880,7 +880,7 @@ private void ResetSize() private bool ShouldSerializeSize() => _size != 0; /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Update)] + [ResCategory(nameof(Strings.DataCategory_Update))] public override string SourceColumn { get => _sourceColumn ?? string.Empty; @@ -888,9 +888,9 @@ public override string SourceColumn } /// - [ResCategory("DataCategory_Update")] + [ResCategory(nameof(Strings.DataCategory_Update))] #if NET - [ResDescription(StringsHelper.ResourceNames.SqlParameter_SourceColumnNullMapping)] + [ResDescription(nameof(Strings.SqlParameter_SourceColumnNullMapping))] #endif public override bool SourceColumnNullMapping { @@ -903,7 +903,7 @@ public override bool SourceColumnNullMapping public override string ToString() => ParameterName; /// - [ResCategory(StringsHelper.ResourceNames.DataCategory_Update)] + [ResCategory(nameof(Strings.DataCategory_Update))] public override DataRowVersion SourceVersion { get From 2d8a8751f43485afa7b2b40e3a7fead0702eb056 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Thu, 25 Sep 2025 22:05:57 +0100 Subject: [PATCH 2/5] Remove GenerateResourceStringsSource target and script --- .../src/Microsoft.Data.SqlClient.csproj | 1 - .../netfx/src/Microsoft.Data.SqlClient.csproj | 1 - .../scripts/GenerateResourceStringsSource.ps1 | 52 ------------------ .../GenerateResourceStringsSource.targets | 11 ---- .../scripts/GenerateResourceStringsSource.ps1 | 55 ------------------- .../GenerateResourceStringsSource.targets | 12 ---- 6 files changed, 132 deletions(-) delete mode 100644 src/Microsoft.Data.SqlClient/netfx/tools/scripts/GenerateResourceStringsSource.ps1 delete mode 100644 src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateResourceStringsSource.targets delete mode 100644 src/Microsoft.Data.SqlClient/src/tools/scripts/GenerateResourceStringsSource.ps1 delete mode 100644 src/Microsoft.Data.SqlClient/src/tools/targets/GenerateResourceStringsSource.targets diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index b69dc00a90..c76178403a 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -1078,5 +1078,4 @@ - diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index b4c4654150..f0dd860f9c 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -1048,7 +1048,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/netfx/tools/scripts/GenerateResourceStringsSource.ps1 b/src/Microsoft.Data.SqlClient/netfx/tools/scripts/GenerateResourceStringsSource.ps1 deleted file mode 100644 index cb98822e97..0000000000 --- a/src/Microsoft.Data.SqlClient/netfx/tools/scripts/GenerateResourceStringsSource.ps1 +++ /dev/null @@ -1,52 +0,0 @@ -# Script: GenerateResourceStringsSource.ps1 -# Author: Keerat Singh -# Date: 25-Jan-2019 -# Comments: This Reads the resources from the resx file and converts them -# into strongly typed const strings -# - -param( - [Parameter(Mandatory=$true)] - [string]$ResxFileDir, - [Parameter(Mandatory=$true)] - [string]$ResxFileName, - [Parameter(Mandatory=$true)] - [string]$OutputPath, - [string]$GeneratedSourceFileName - ) - -# Read the resx file -$XmlFilePath = "${ResxFileDir}${ResxFileName}.resx" -[xml]$XmlDocument = Get-Content -Path "$XmlFilePath" - -# Initial content for the Source File. -$GeneratedSourceFileContent= " -//------------------------------------------------------------------------------ -// This code was auto-generated by msbuild target. -// Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. -//------------------------------------------------------------------------------ - -using System; -using System.Globalization; -using System.Resources; -using System.Threading; - -namespace Microsoft.Data -{ - internal partial class StringsHelper : $ResxFileName - { - internal class ResourceNames - {`n" -ForEach($node in $XmlDocument.root.data) -{ - $ResourceName = $node.name - # Escape the Double Quotes in the resource string value. - $ResourceValue = $node.value -replace '"','""' - # Convert Resource Name and Value to internal const string - $GeneratedSourceFileContent= $GeneratedSourceFileContent + " internal const string $ResourceName = @`"$ResourceValue`";`n" -} - -$GeneratedSourceFileContent= $GeneratedSourceFileContent + " }`n}`n}" - -# Output to File -$GeneratedSourceFileContent | Out-File "${OutputPath}${GeneratedSourceFileName}" \ No newline at end of file diff --git a/src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateResourceStringsSource.targets b/src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateResourceStringsSource.targets deleted file mode 100644 index 1d5e78f852..0000000000 --- a/src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateResourceStringsSource.targets +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/Microsoft.Data.SqlClient/src/tools/scripts/GenerateResourceStringsSource.ps1 b/src/Microsoft.Data.SqlClient/src/tools/scripts/GenerateResourceStringsSource.ps1 deleted file mode 100644 index ad20400327..0000000000 --- a/src/Microsoft.Data.SqlClient/src/tools/scripts/GenerateResourceStringsSource.ps1 +++ /dev/null @@ -1,55 +0,0 @@ -# Licensed to the .NET Foundation under one or more agreements. -# The .NET Foundation licenses this file to you under the MIT license. -# See the LICENSE file in the project root for more information. -# Script: GenerateResourceStringsSource.ps1 -# Author: Keerat Singh -# Date: 25-Jan-2019 -# Comments: This Reads the resources from the resx file and converts them -# into strongly typed const strings -# - -param( - [Parameter(Mandatory=$true)] - [string]$ResxFileDir, - [Parameter(Mandatory=$true)] - [string]$ResxFileName, - [Parameter(Mandatory=$true)] - [string]$OutputPath, - [string]$GeneratedSourceFileName - ) - -# Read the resx file -$XmlFilePath = "${ResxFileDir}${ResxFileName}.resx" -[xml]$XmlDocument = Get-Content -Path "$XmlFilePath" - -# Initial content for the Source File. -$GeneratedSourceFileContent= " -//------------------------------------------------------------------------------ -// This code was auto-generated by msbuild target. -// Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. -//------------------------------------------------------------------------------ - -using System; -using System.Globalization; -using System.Resources; -using System.Threading; - -namespace Microsoft.Data -{ - internal partial class StringsHelper : $ResxFileName - { - internal class ResourceNames - {`n" -ForEach($node in $XmlDocument.root.data) -{ - $ResourceName = $node.name - # Escape the Double Quotes in the resource string value. - $ResourceValue = $node.value -replace '"','""' - # Convert Resource Name and Value to internal const string - $GeneratedSourceFileContent= $GeneratedSourceFileContent + " internal const string $ResourceName = @`"$ResourceValue`";`n" -} - -$GeneratedSourceFileContent= $GeneratedSourceFileContent + " }`n}`n}" - -# Output to File -$GeneratedSourceFileContent | Out-File "${OutputPath}${GeneratedSourceFileName}" \ No newline at end of file diff --git a/src/Microsoft.Data.SqlClient/src/tools/targets/GenerateResourceStringsSource.targets b/src/Microsoft.Data.SqlClient/src/tools/targets/GenerateResourceStringsSource.targets deleted file mode 100644 index cf6f76d908..0000000000 --- a/src/Microsoft.Data.SqlClient/src/tools/targets/GenerateResourceStringsSource.targets +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - \ No newline at end of file From ec957d8092c549b0a03016b2c9564cf761535157 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Thu, 25 Sep 2025 22:21:13 +0100 Subject: [PATCH 3/5] Mopup: netfx resource strings, cleanup csproj, seal StringsHelper --- ....AlwaysEncrypted.AzureKeyVaultProvider.csproj | 4 ---- .../netfx/src/Microsoft.Data.SqlClient.csproj | 4 ---- .../src/Microsoft/Data/SqlClient/SqlCommand.cs | 4 ++-- .../Data/SqlClient/SqlConnectionStringBuilder.cs | 12 ++++++------ .../Microsoft/Data/SqlClient/SqlDependency.cs | 16 ++++++++-------- .../src/Resources/StringsHelper.cs | 2 +- 6 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj b/src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj index 51af5632e3..f1d7c76751 100644 --- a/src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj +++ b/src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj @@ -26,12 +26,8 @@ $(SigningKeyPath) - - $([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(GeneratedSourceFileName)')) - - diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index f0dd860f9c..1d7b89a6ab 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -28,9 +28,6 @@ full - - $([System.IO.Path]::Combine('$(IntermediateOutputPath)\$(TargetFramework)','$(GeneratedSourceFileName)')) - <_Parameter1>UnitTests @@ -38,7 +35,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs index b45c97fc77..119b29c47c 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs @@ -435,8 +435,8 @@ public SqlNotificationRequest Notification #if NETFRAMEWORK /// [DefaultValue(true)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Notification)] - [ResDescription(StringsHelper.ResourceNames.SqlCommand_NotificationAutoEnlist)] + [ResCategory(nameof(Strings.DataCategory_Notification))] + [ResDescription(nameof(Strings.SqlCommand_NotificationAutoEnlist))] public bool NotificationAutoEnlist { get => _notificationAutoEnlist; diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs index 358a581c57..6bc29aee36 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs @@ -1833,8 +1833,8 @@ public override bool TryGetValue(string keyword, out object value) [Browsable(false)] [DisplayName(DbConnectionStringKeywords.ConnectionReset)] [Obsolete("ConnectionReset has been deprecated. SqlConnection will ignore the 'connection reset' keyword and always reset the connection.")] // SQLPT 41700 - [ResCategory(StringsHelper.ResourceNames.DataCategory_Pooling)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_ConnectionReset)] + [ResCategory(nameof(Strings.DataCategory_Pooling))] + [ResDescription(nameof(Strings.DbConnectionString_ConnectionReset))] [RefreshProperties(RefreshProperties.All)] public bool ConnectionReset { @@ -1848,8 +1848,8 @@ public bool ConnectionReset /// [DisplayName(DbConnectionStringKeywords.TransparentNetworkIpResolution)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Source)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_TransparentNetworkIPResolution)] + [ResCategory(nameof(Strings.DataCategory_Source))] + [ResDescription(nameof(Strings.DbConnectionString_TransparentNetworkIPResolution))] [RefreshProperties(RefreshProperties.All)] public bool TransparentNetworkIPResolution { @@ -1863,8 +1863,8 @@ public bool TransparentNetworkIPResolution /// [DisplayName(DbConnectionStringKeywords.NetworkLibrary)] - [ResCategory(StringsHelper.ResourceNames.DataCategory_Advanced)] - [ResDescription(StringsHelper.ResourceNames.DbConnectionString_NetworkLibrary)] + [ResCategory(nameof(Strings.DataCategory_Advanced))] + [ResDescription(nameof(Strings.DbConnectionString_NetworkLibrary))] [RefreshProperties(RefreshProperties.All)] [TypeConverter(typeof(NetworkLibraryConverter))] public string NetworkLibrary diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDependency.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDependency.cs index 0f95e3dcce..e237e0e3e7 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDependency.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDependency.cs @@ -311,8 +311,8 @@ public SqlDependency(SqlCommand command, string options, int timeout) /// #if NETFRAMEWORK [ - ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data), - ResDescriptionAttribute(StringsHelper.ResourceNames.SqlDependency_HasChanges) + ResCategoryAttribute(nameof(Strings.DataCategory_Data)), + ResDescriptionAttribute(nameof(Strings.SqlDependency_HasChanges)) ] #endif public bool HasChanges => _dependencyFired; @@ -320,8 +320,8 @@ public SqlDependency(SqlCommand command, string options, int timeout) /// #if NETFRAMEWORK [ - ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data), - ResDescriptionAttribute(StringsHelper.ResourceNames.SqlDependency_Id) + ResCategoryAttribute(nameof(Strings.DataCategory_Data)), + ResDescriptionAttribute(nameof(Strings.SqlDependency_Id)) ] #endif public string Id => _id; @@ -342,8 +342,8 @@ public SqlDependency(SqlCommand command, string options, int timeout) /// #if NETFRAMEWORK [ - ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data), - ResDescriptionAttribute(StringsHelper.ResourceNames.SqlDependency_OnChange) + ResCategoryAttribute(nameof(Strings.DataCategory_Data)), + ResDescriptionAttribute(nameof(Strings.SqlDependency_OnChange)) ] #endif public event OnChangeEventHandler OnChange @@ -420,8 +420,8 @@ public event OnChangeEventHandler OnChange /// #if NETFRAMEWORK [ - ResCategoryAttribute(StringsHelper.ResourceNames.DataCategory_Data), - ResDescriptionAttribute(StringsHelper.ResourceNames.SqlDependency_AddCommandDependency) + ResCategoryAttribute(nameof(Strings.DataCategory_Data)), + ResDescriptionAttribute(nameof(Strings.SqlDependency_AddCommandDependency)) ] #endif public void AddCommandDependency(SqlCommand command) diff --git a/src/Microsoft.Data.SqlClient/src/Resources/StringsHelper.cs b/src/Microsoft.Data.SqlClient/src/Resources/StringsHelper.cs index 65472df948..bb3b278d45 100644 --- a/src/Microsoft.Data.SqlClient/src/Resources/StringsHelper.cs +++ b/src/Microsoft.Data.SqlClient/src/Resources/StringsHelper.cs @@ -10,7 +10,7 @@ namespace Microsoft.Data { - internal partial class StringsHelper : Strings + internal sealed class StringsHelper : Strings { private static StringsHelper s_loader = null; private readonly ResourceManager _resources; From cfc6abb79904a968e55f2e93f5ff51d865d1d871 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Fri, 26 Sep 2025 18:31:08 +0100 Subject: [PATCH 4/5] Add test to verify behaviour of attributes --- .../Microsoft/Data/LocalisedAttributeTest.cs | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/LocalisedAttributeTest.cs diff --git a/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/LocalisedAttributeTest.cs b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/LocalisedAttributeTest.cs new file mode 100644 index 0000000000..206f530b59 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/LocalisedAttributeTest.cs @@ -0,0 +1,78 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.ComponentModel; +using System.Reflection; +using Microsoft.Data.SqlClient; +using Xunit; + +namespace Microsoft.Data.UnitTests; + +public class LocalisedAttributeTest +{ + /// + /// This property must have both the ResDescription and the ResCategory attribute. + /// + private const string PropertyName = nameof(SqlConnectionStringBuilder.CommandTimeout); + + /// + /// Type must contain the PropertyName property with both attributes. + /// + private static readonly Type s_exampleType = typeof(SqlConnectionStringBuilder); + + /// + /// Verifies that the correctly localizes its value. + /// + /// + /// This test validates the description when accessed via both PropertyDescriptor and directly + /// via the attribute. + /// + [Fact] + public void ResDescription_Attribute_Localizes_Description() + { + PropertyDescriptorCollection typeDescriptorProperties = TypeDescriptor.GetProperties(s_exampleType); + string expectedDescription = Strings.DbCommand_CommandTimeout; + + PropertyDescriptor? csbCommandTimeoutDescriptor = typeDescriptorProperties[PropertyName]; + PropertyInfo? csbCommandTimeoutPI = s_exampleType.GetProperty(PropertyName); + ResDescriptionAttribute? descriptionAttribute = csbCommandTimeoutPI is null + ? null + : (ResDescriptionAttribute?)Attribute.GetCustomAttribute(csbCommandTimeoutPI, typeof(ResDescriptionAttribute), false); + + Assert.NotNull(csbCommandTimeoutDescriptor); + Assert.NotNull(descriptionAttribute); + + Assert.NotEqual(nameof(Strings.DbCommand_CommandTimeout), expectedDescription); + Assert.Equal(expectedDescription, csbCommandTimeoutDescriptor.Description); + Assert.Equal(expectedDescription, descriptionAttribute.Description); + } + + /// + /// Verifies that the correctly localizes its value. + /// + /// + /// This test validates the description when accessed via both PropertyDescriptor and directly + /// via the attribute. + /// + [Fact] + public void ResCategory_Attribute_Localizes_Category() + { + PropertyDescriptorCollection typeDescriptorProperties = TypeDescriptor.GetProperties(s_exampleType); + string expectedCategory = Strings.DataCategory_Initialization; + + PropertyDescriptor? csbCommandTimeoutDescriptor = typeDescriptorProperties[PropertyName]; + PropertyInfo? csbCommandTimeoutPI = s_exampleType.GetProperty(PropertyName); + ResCategoryAttribute? categoryAttribute = csbCommandTimeoutPI is null + ? null + : (ResCategoryAttribute?)Attribute.GetCustomAttribute(csbCommandTimeoutPI, typeof(ResCategoryAttribute), false); + + Assert.NotNull(csbCommandTimeoutDescriptor); + Assert.NotNull(categoryAttribute); + + Assert.NotEqual(nameof(Strings.DataCategory_Initialization), expectedCategory); + Assert.Equal(expectedCategory, csbCommandTimeoutDescriptor.Category); + Assert.Equal(expectedCategory, categoryAttribute.Category); + } +} From 58b0b53e49c189fb48ac22da42bae00cd6a3bfb5 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Fri, 26 Sep 2025 18:33:51 +0100 Subject: [PATCH 5/5] Remove hardcoded resource string in applied via ResCategory --- .../src/Microsoft/Data/SqlClient/SqlParameter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs index 8d5c79546c..8647864ccf 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs @@ -899,7 +899,7 @@ public override bool SourceColumnNullMapping } /// - [ResCategory("Data")] + [ResCategory(nameof(Strings.DataCategory_Data))] public override string ToString() => ParameterName; ///