La respuesta corta es que F # (desafortunadamente) actualmente no proporciona ninguna API para alojar F # Interactive en sus aplicaciones. Hay muchas personas que preguntan por esto; ver, por ejemplo, este SO question.
Fundamentalmente, hay dos cosas que podría hacer al respecto:
se puede modificar el open-source release y compilar fsi.exe
como algunos librería DLL que proporcionaría la API que necesita. Esta no es una tarea simple: F # Interactive está estrechamente vinculado con el compilador (compila el código que ingresa sobre la marcha), pero debería ser posible encapsular los tipos que implementan REPL en algún tipo que pueda llamar (Pero no puede simplemente tomar algunos archívelo, necesita compilar F # completo para que funcione).
Puede ejecutar fsi.exe
como un proceso separado como lo hace Visual Studio y enviarle comandos utilizando la entrada/salida estándar. Puede obtener más flexibilidad cargando su biblioteca cuando comience fsi.exe
. La biblioteca podría usar .NET Remoting para conectarse nuevamente a su aplicación y exponer algunos datos.
Desafortunadamente, estas dos opciones son probablemente las únicas cosas que puede hacer por el momento.
EDITAREstaba pensando que ya he respondido a esta pregunta en alguna parte (tal vez en el correo electrónico), pero no
pude encontrarlo! Gracias a Mauricio que encontró el exact duplicate (incluso con mi respuesta duplicada ... Doh!)
duplicado: http://stackoverflow.com/questions/1563024/embedding-f-interactive http://stackoverflow.com/questions/4637181/fsi-exe-assembly-anyone-know-how-to-embed- eso –