Skip to content

Hospedagem

Ricardo Borges edited this page Apr 17, 2014 · 1 revision

Hospedando o Motor NPortugol.

Para executar código NPortugol dentro da sua aplicação .NET você precisará instanciar o Motor:

var motor = new Motor();

Compilando e executando scripts

motor.Compilar("função principal() fim");
motor.Executar(); // Função principal.

ou

motor.Compilar("função soma(a, b) retorne a + b fim");
var resultado = motor.Executar("soma", 2, 2);

###Interoperabilidade###

As opções de métodos para registro de funções são:

void Registar(string name, Func<object[], object> handler);
void Registar(string name, IHostFunction hostFunction);

A primeira sobrecarga permite a sintaxe de Lambda Expression para mapear um método C#.

motor.Hospedagem.Registrar("data", x => DateTime.Now.ToShortDateString());

A segunda sobrecarga permite a definição em uma classe separada.

motor.Hospedagem.Registrar("data", new Data());

...

public class Data: IFuncaoHospedada
{
    public object Execute(params object[] parameters)
    {
        return DateTime.Now.ToShortDateString();
    }
}
Clone this wiki locally