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;
///