none
Executar linha de comando vinda de uma variável String RRS feed

  • Pergunta

  • Dim exec As String = "MessageBox.Show(txtLookupCodigo.Text)"

    Preciso em run time realizar a execução do código inserido na variável exec.

    terça-feira, 10 de abril de 2012 18:55

Todas as Respostas

  • Isso não é permitido nem aconselhável por questões de segurança. Não há função eval em Silverlight como há em javascript. TALVEZ dê para fazer usando reflection, mas até onde lembro do reflection do Silverlight eu acho que as classes necessárias para geração de código em runtime não existem (lembro de ter tentado usar uns 3 anos atrás, mas depois só usei reflection para inspecionar código, não para gerar).

    Você pode descrever exatamente qual é a sua necessidade? Talvez com isso dê para ajudarmos apontando uma outra forma de conseguir fazer o que você precisa.


    Atenciosamente,

    Kelps Leite de Sousa | MVP Silverlight
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.

    terça-feira, 10 de abril de 2012 20:01
    Moderador
  • A aplicação , vai ler do banco de dados uma string por exemplo:

    campo1.text = (campo2.text + campo3.text) / 2

    Quando eu ler, eu vou ter que executar essa string. Vai ter que fazer esse calculo , e armazenar no campo1.text

    quarta-feira, 11 de abril de 2012 12:11
  • Como eu disse acima, não tem com fazer isso que você está tentando, mas eu quero entender melhor a necessidade pois talvez haja uma outra forma de atingir o seu objetivo.

    O que ajudaria seria saber por que você está querendo armazenar esse tipo de expressão no banco? Essa informação que você está querendo gravar no banco é incluída pelo usuário ou é parametrização da aplicação? Descreva o seu cenário de forma mais detalhada que talvez possamos encontrar uma abordagem melhor que atenda a usa necessidade.


    Atenciosamente,

    Kelps Leite de Sousa | MVP Silverlight
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.

    quarta-feira, 11 de abril de 2012 12:24
    Moderador
  • Rafael,

    Eu acho super válido o que o Kelps disse. O que acha de ao invés de fazer isto que está pensando, montar um dicionario de funções como um framework, mas com palavras suas mesmo, e a partir dai criar um componente para interpretar esta string, mantendo o código da sua aplicação segura e fazendo o que precisa.


    Samuel Fabel




    • Editado Samuel Fabel quarta-feira, 9 de maio de 2012 13:54
    quarta-feira, 9 de maio de 2012 13:52
  • Olá, Rafael.

    Existe uma forma muito completa de fazer isso: http://ironruby.codeplex.com/releases

    Em um projeto que participei até o ano passado, criamos objetos que interagiam com a DLR do .Net e executava várias tarefas dinamicamente, incluindo mudar layouts de telas XAML criando e redefinindo componentes diretamente na estação do cliente.

    A DLR (http://dlr.codeplex.com/) é um interpretador para linguagens de programação dinâmicas provido pelo próprio grupo de desenvolvedores da microsoft (ou administrado por...).

    Eu dei o exemplo do Ruby, acima, e há o Phyton, também, porque foram as linguagens/interpretadores cuidados com maior rigor e mais atualizados pelo grupo original de definição do projeto.

    No início de nossos estudos para o projeto que citei, chegamos a usar o interpretador de JavaScript, mas ele foi "abandonado" pela equipe inicial e por isso migramos para o Ruby, que é bastante parecido com o JS ou com o C#.

    Tem funcionado perfeitamente e tem nos atendido inclusive para disponibilizar ao usuário final a capacidade de criar scripts para interagir com o nosso sistema.

    As possibilidades são infinitas...

    Até mais.


    Bom dia, bom trabalho.

    terça-feira, 22 de maio de 2012 20:37