CA1306: Definir localidade para tipos de dados
Item | Valor |
---|---|
RuleId | CA1306 |
Categoria | Microsoft.Globalization |
Alteração da falha | Sem interrupção |
Causa
Um método ou construtor criou uma ou mais instâncias System.Data.DataTable e System.Data.DataSet não definiu explicitamente a propriedade de localidade (System.Data.DataTable.Locale ou System.Data.DataSet.Locale).
Descrição da regra
A localidade determina os elementos de apresentação específicos da cultura para dados, como a formatação usada para valores numéricos, símbolos de moeda e ordem de classificação. Ao criar uma DataTable ou um DataSet, você deverá definir a localidade explicitamente. Por padrão, a localidade para esses tipos é a cultura atual. Para dados armazenados em um banco de dados ou arquivo e compartilhados globalmente, a localidade normalmente deve ser definida como a cultura invariável (System.Globalization.CultureInfo.InvariantCulture). Quando os dados são compartilhados entre culturas, o uso da localidade padrão pode fazer com que o conteúdo de DataTable ou DataSet seja apresentado ou interpretado incorretamente.
Como corrigir violações
Para corrigir uma violação dessa regra, defina explicitamente a localidade da DataTable ou do DataSet.
Quando suprimir avisos
É seguro suprimir um aviso dessa regra quando a biblioteca ou o aplicativo for para um público local limitado, os dados não forem compartilhados ou a configuração padrão produzir o comportamento desejado em todos os cenários com suporte.
Exemplo
O exemplo a seguir cria duas instâncias de DataTable.
using System;
using System.Data;
using System.Globalization;
namespace GlobalLibrary
{
public class MakeDataTables
{
// Violates rule: SetLocaleForDataTypes.
public DataTable MakeBadTable()
{
DataTable badTable = new DataTable("Customers");
DataColumn keyColumn = badTable.Columns.Add("ID", typeof(Int32));
keyColumn.AllowDBNull = false;
keyColumn.Unique = true;
badTable.Columns.Add("LastName", typeof(String));
badTable.Columns.Add("FirstName", typeof(String));
return badTable;
}
public DataTable MakeGoodTable()
{
DataTable goodTable = new DataTable("Customers");
// Satisfies rule: SetLocaleForDataTypes.
goodTable.Locale = CultureInfo.InvariantCulture;
DataColumn keyColumn = goodTable.Columns.Add("ID", typeof(Int32));
keyColumn.AllowDBNull = false;
keyColumn.Unique = true;
goodTable.Columns.Add("LastName", typeof(String));
goodTable.Columns.Add("FirstName", typeof(String));
return goodTable;
}
}
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de