Array
(
)

Criando um Formulário de Pesquisa Genérico utilizando Camadas (Unity, DTO, Fachada, Repositórios)

Rodrigo Simões
|
MVP
    19 fev 2016

Olá Pessoal,
Estou tentando desenvolver um formulário de pesquisa genérico, porém não estou conseguindo passar como parâmetro dois tipos de classes ("cliente_app" e "cliente_dto").
O intuito é que a partir de um formulário origem, possa passar os tipos de cada cadastro (Ex. Clientes, Fornecedores, Funcionários, etc.) e que o formulário de pesquisa possa carregar os dados conforme os parâmetros passados.
Segue abaixo o código, que está funcionando perfeitamente, porém com os tipos de classe de cadastro de clientes fixos.
#Código

using Microsoft.Practices.Unity;
using Infraestrutura.IoC.Unity;
using Aplicacao.Dto;
using Aplicacao.Fachada;
using Dominio.Contrato.Repositorio;


namespace WinForms
{
    public partial class Pesquisa_Frm : Form
    {
        private IUnityContainer unity;
        private cliente_app cliente; // Aplicacao.Fachada
        private uow_irep uow; //Dominio.Contrato.Repositorio

        public Pesquisa_Frm()
        {
            InitializeComponent();

            //Inicializando
            this.unity = new UnityContainer();
            UnityResolvedorDeDependencias.InicializaContainer(unity);
            this.cliente = unity.Resolve<cliente_app>();
            this.uow = unity.Resolve<uow_irep>();
        }

        private void Pesquisa_Frm_Load(object sender, EventArgs e)
        {
            try
            {
                // Carrega dados demonstrativos no DataViewGrid
                ICollection<cliente_dto> dtos = cliente.ListarTodos();
                DataGridView1.DataSource = dtos;
            }
            catch (Exception EX)
            {
                throw EX;
            }
        }
    }
}

Rodrigo Simões
|
MVP
    29 fev 2016

Olá Pessoal...

Algum auxílio de um programador pleno em .NET para ajudar neste problema? Estou precisando muito...

Tive uma conversa com um amigo sobre como solucionar, utilizando Factories, mas ocorre que o volume de código ficaria basicamente o mesmo que criar várias interfaces de pesquisas.

Se fosse possível passar tipos de classes como parâmetros em Forms o problema estaria resolvido.