Compartilhar via


Considerações sobre geradores de dados personalizados

Você pode estender os recursos de geração de dados de Visual Studio , criando geradores de dados personalizados. Se houver uma regra de negócio, os geradores de dados padrão não podem satisfazer, você pode criar um gerador de dados personalizados. Para obter mais informações, consulte Geração de dados de teste para bancos de dados usando os geradores de dados.

Antes de criar um gerador de dados personalizados, você deve considerar as questões a seguintes.

Nomeação do gerador de dados

Quando você cria um gerador de dados personalizados, você pode controlar o nome que aparece na interface do usuário para esse gerador de dados personalizados. Você deve evitar dando o mesmo nome para vários geradores de dados. Você também deve evitar dando o mesmo nome de qualquer um dos geradores de dados interno de seu gerador.

Quando você usa uma API declarativa de nomeação

Se você não declarar um designer para uso com o seu gerador de dados personalizados, o nome da classe do gerador de dados aparece como a exibição de nome quando o DefaultDistributionDesigner é criado.

Para especificar o nome para o gerador que aparece na interface do usuário para o gerador de dados personalizados, você pode aplicar o atributo a seguir à sua classe do gerador de dados personalizados:

[System.ComponentModel.DisplayName("YourGeneratorName")]

Quando você usa uma API de Base de nomeação

Se você criar um designer personalizado, o valor retornado pela propriedade Name do designer aparece na interface do usuário para o gerador de dados personalizados. Se você derivar seu designer personalizado de DefaultGeneratorDesigner, o atributo DisplayName é usado. Se você derivar, em vez disso, seu designer personalizado de IGeneratorDesigner, o atributo DisplayName é ignorado.

Para especificar o atributo DisplayName para seu gerador de dados, você deve adicionar o atributo a seguir à sua classe do gerador de dados:

[System.ComponentModel.DisplayName("YourGeneratorName")]

A especificação de um gerador de dados personalizado como o gerador de dados padrão para um tipo de dados SQL

Você pode atribuir um gerador de dados personalizados, como o gerador de dados padrão para um tipo de dados SQL. Para obter mais informações, consulte Como: Alterar o gerador de padrão para um tipo de coluna.

Quando você atribui um gerador de personalizado como padrão para um tipo de dados SQL, as seguintes restrições se aplicam:

  • Você pode atribuir um gerador de dados personalizados para qualquer tipo de dados SQL não pode ter uma restrição exclusiva. Por exemplo, você pode atribuir um gerador de dados personalizados para o tipo de dados de imagem.

  • Você pode atribuir um gerador de dados personalizados sem atributos de filtro para qualquer tipo de dados SQL.

  • Você pode atribuir um gerador de dados personalizados que têm atributos de filtro para um tipo de dados SQL só pode ter uma restrição exclusiva se o gerador de dados personalizados pode produzir valores exclusivos. Para designar esse tipo de gerador, aplica o atributo a seguir para a classe do gerador de dados personalizados:

    <GeneratorStyles(DesignerStyles:=GeneratorDesignerStyles.CanProduceUniqueValues)> _
    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    [GeneratorStyles(DesignerStyles = GeneratorDesignerStyles.CanProduceUniqueValues)]
    public class TestGenerator:Generator
    {
    }
    

Designers personalizados

Por padrão, um gerador de dados personalizados irá usar o designer do padrão.

Se você quiser usar um designer personalizado com seu gerador de dados personalizados, você deve especificar um atributo adicional da classe do gerador de dados personalizados:

<Generator(GetType(CustomDesignerType))> _
Public Class TestGenerator
    Inherits Generator

End Class
[Generator(typeof(CustomDesignerType))]
public class TestGenerator:Generator
{
}

Propriedades de entrada atribuída automaticamente

Se você marca um ou mais propriedades de seu gerador de dados personalizados com de entrada do AutoAssignedInput atributo, você também deve fazer essas propriedades somente leitura. A propriedade que possui uma entrada atribuída automaticamente precisa ter um setter, mas deve ter a propriedade ReadOnly definida como true no seu InputDescriptor.

A maioria das propriedades que você marca como será atribuída automaticamente ter seus valores redefinidos quando você abrir o o plano de geração de dados. Por exemplo, as propriedades de agrupamento, o tipo de dados, MaxLength, Nullable e RowsToGenerate são todos redefinidas quando eles estiverem marcados como atribuída automaticamente. Por outro lado, as propriedades de recursos exclusivos, propagação e PercentageNull não são redefinidas quando eles estiverem marcados como atribuída automaticamente.

Tornando as propriedades cujos valores serão redefinidos como somente leitura, ajudará a evitar confundir os usuários de seu gerador de dados personalizados.

Consulte também

Tarefas

Como: Criar geradores de dados personalizados

Demonstra Passo a passo: Criando um gerador de dados personalizados

Conceitos

Uma visão geral da extensibilidade do gerador de dados

Gerar dados de teste especializado com um gerador de dados personalizados