13 de jun. de 2014

Recebendo uma classe como parâmetro e disparando um método!



  1. Recebendo uma classe já instanciada como parâmetro.
  2. Descobrindo o tipo dela.  ClasseInstaciada.GetType();
  3. Pesquisando se existe o método: tipo.GetMethod("MetodoPublico"new Type[] { typeof(string) });
  4. Disparando o método: mi.Invoke(ClasseInstaciadanew object[] {"DEU CERTOOOOOOOOOO"});

using System;
using System.Reflection;

namespace ConsoleApplication2
{
  class Program
  {
    static void Main(string[] args)
    {
      MetodoB(new ClasseSimples());
      Console.ReadKey();
    }

    public static void MetodoB(object ClasseInstaciada)
    {
      //Como disparar o Método MTDPublico da classe ClasseSimples????
      //Ex: AA.teste() ??????????????????????

      //Pega o TIPO dela primeiro
      Type tipo = ClasseInstaciada.GetType();
      //Pesquisa dentro da classe se existe o Método
      MethodInfo mi = tipo.GetMethod("MetodoPublico", new Type[] { typeof(string) });     
      //Dispara o método
      mi.Invoke(ClasseInstaciada, new object[] {"DEU CERTOOOOOOOOOO"});
    }
  }

  public class ClasseSimples
  {
    public void MTDPublico(string MSG)
    {
      Console.WriteLine(MSG);
    }
  }
}

Nenhum comentário:

Postar um comentário

 Fonte: https://dbaexperts.tech/wp/database/como-funciona-inner-join-left-join-right-join-y-full-join/