CA1306: definir localidade para tipos de dados
TypeName |
SetLocaleForDataTypes |
CheckId |
CA1306 |
Categoria |
Microsoft.Globalization |
Alteração Significativa |
Sem quebra |
Causa
Um método ou um construtor criou uma ou mais instâncias de DataTable ou de DataSet e não têm definido explicitamente a propriedade de localidade (DataTable.Locale ou DataSet.Locale).
Descrição da Regra
A localidade determina os elementos com específicos de apresentação de dados, como a formatação usado para valores numéricos, símbolos de moeda, e ordem de classificação.Quando você cria DataTable ou DataSet, você deve definir a localidade explicitamente.Por padrão, a localidade para esses tipos é a cultura atual.Para os dados que são armazenados em um base de dados ou em um arquivo e compartilhados global, a localidade normalmente deve ser definida como a cultura invariável (CultureInfo.InvariantCulture).Quando os dados são compartilhados por meio de culturas, usa a localidade padrão pode fazer com que o conteúdo de DataTable ou de DataSet a ser dispostos incorretamente ou interpretado.
Como Corrigir Violações
Para corrigir uma violação desta regra, defina explicitamente a localidade para DataTable ou DataSet.
Quando Suprimir Alertas
É seguro suprimir um aviso desta regra quando a biblioteca ou o aplicativo são para um público local limitada, os dados não é compartilhado, ou os gera a configuração padrão do 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;
}
}
}