Carregar métodos de uma classe em uma lista C#

É possível ler um arquivo .cs, como texto ou outro formato e carregar os métodos desse arquivo separadamente em uma lista.

Exemplo:

Tenho uma classe

public class Classe
{
    public void metodo1()
    {
    }
    public void metodo2()
    {
    }
}

Tem como eu carregar esses métodos em uma lista de string ou outro tipo, assim:

lista[0] = 'public void metodo1(){}';
lista[1] = 'public void metodo2(){}';

Não quero inserir método a método na lista dessa forma quero ler o arquivo e adicionar direto na lista.

Observação: em C#

Esse tipo de coisa não é muito trivial, então vou te perguntar: o que você está tentando fazer e por que acha que essa abordagem vai dar o resultado que você espera? Explique melhor sua necessidade real (qual problema está tentando resolver).

Abraço.

  • O que pretende?
  • Já viu algo sobre Reflexão (Reflection C#)?
  • Tem que ler o arquivo, ele está dentro do seu projeto?

Tudo vai depender do que pretende, de cara seria Reflection C#, mas, a gente não consegue entender aonde pretende chegar, se puder explicar corretamente.

Pronto! O problema é o seguinte, tenho um projeto um pouco grande que vai precisar ser alterado, esse projeto vai ser dividido em dois projetos. Isso porque a princípio o projeto tinha sido criado para rodar apenas nas máquinas da empresa, mas como o projeto foi evoluindo, surgiu a necessidade do projeto rodar nas máquinas de clientes. Então, alguns métodos ficarão em um projeto e outros métodos em outro projeto. Estou automatizando um programinha para criar as classes com os métodos necessários para cada projeto, isso a partir de uma classe existente.

O programa já consegue criar as classes com as referências necessárias em ambos os projetos, mas agora pensei em conseguir carregar os métodos em uma lista ou algo do tipo para separa-los e incluir no projeto certo.

OBS: Os arquivos com as classes não estão no mesmo projetos.

Crie uma projeto Library e compartilha esse mesmo projeto nós outros dois.

Infelizmente não posso fazer isso, a ideia de separar o código é para que se alguém de alguma forma conseguir fazer uma engenharia reversa não tenha acesso a algumas funções do projeto.

Vou continuar verificando se tem alguma outra forma de fazer. Agradeço.

Rapaz de qualquer forma a gente consegue fazer isso se está indo pelo caminho errado e isso que você quer fazer é totalmente sem cabimento

O princípio básico é que a interface do cliente é insegura por natureza.

Sua solução não elimina vulneravilidades.

Dependendo da experiência do atacante, se alguém fizer engenharia reversa de sua apliação poderá capturar o necessário sem muita difilculdade.

Veja, se a aplicação é local, não há muito o que fazer, cracking nunca foi novidade.

Mas se a aplicação é cliente servidor, siga a arquitetura cliente servidor.

No mais, o cliente tem acesso uma determinada informação liberada pelo servidor e ele faz o que for possível com a informação recebida.

Não se replica funções/métodos sensíveis na camada do cliente.

Isso, que você pretende fazer lembra muito a certificação MGbr0: mestre de gambiarra.

Não vale a pena o esforço.

2 curtidas