none
Forma de invocar método privado com parâmetro e retorno via reflections RRS feed

  • Pergunta

  • Comunidade, boa tarde.

    Estou usando reflections de maneira que um objeto Persistência tenha método público no exemplo a seguir que invoque

    algum método privado de acordo com o tipo da bean passada de parâmetro.

    supondo que temos as classes Funcionario e Empresa que implemente BeanDoProjeto

    public DataSet PesquisarBeanDoProjeto(BeansDoProjeto.BeanDoProjeto bean) {                      

    Type thisType = this.GetType();
    Type beanType = bean.GetType();
    object[] parametersObjects = { bean };
    DataSet retorno = (DataSet)thisType.InvokeMember("Pesquisar_" + beanType, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, this, parametersObjects);
    return retorno;}

    private DataSet Pesquisar_Funcionario(BeansDoProjeto.BeanDoProjeto bean);

    private DataSet Pesquisar_Empresa(BeansDoProjeto.BeanDoProjeto bean);

      Contudo o método nao esta sendo achado, gostaria de saber aonde oque estou fazendo de errado , e se esta e uma boa pratica de programação

    quarta-feira, 18 de dezembro de 2013 19:45

Todas as Respostas

  • Só por curiosidade se é desenvolvedor JAVA (Bean)????

    public class Master
    {
    	public Master()
    	{
    		this.Id = 0;
    		this.Nome = Nome;
    	}
    	public Master(String Nome)
    	{
    		this.Id = 0;
    		this.Nome = Nome;
    	}
    	public Master(int Id, String Nome)
    	{
    		this.Id = Id;
    		this.Nome = Nome;
    	}
    	public int Id { get; set; }
    	public String Nome { get; set; }                                                  
    	public virtual IList<SubMaster> Masters { get; set; }
    }
    public class SubMaster
    {
    	public SubMaster() {}
    	public int Fator { get; set; }  
      
    }   
    	
    Master master = new Master();
    Type tipo = master.GetType();
    
    System.Reflection.ConstructorInfo[] Construtores = tipo.GetConstructors();
    System.Reflection.MemberInfo[] Propriedades = tipo.GetProperties();
    System.Reflection.MemberInfo[] Metodos = tipo.GetMethods();
    Isso é um exemplo para descobrir esses itens, lógico tem mais mas, coloquei como exemplo?


    Fulvio Cezar Canducci Dias

    quinta-feira, 19 de dezembro de 2013 01:26