Короткий ответ: F # (к сожалению) в настоящее время не предоставляет API для размещения F # Interactive в ваших приложениях. Многие люди просят об этом - см., Например, ТАК вопрос .
Существуют две вещи, которые вы можете сделать с этим:
Вы можете изменить релиз с открытым исходным кодом и скомпилировать fsi.exe
в виде некоторой библиотеки DLL, которая предоставит вам необходимый API. Это непростая задача - F # Interactive тесно связан с компилятором (он компилирует код, который вы вводите на лету), но это должно быть выполнимо для инкапсуляции типов, реализующих REPL, в некоторый тип, который вы можете вызвать (но вы не можете просто взять некоторые файл из него - вам нужно скомпилировать весь F #, чтобы это работало).
Вы можете запустить fsi.exe
как отдельный процесс, как это делает Visual Studio, и отправлять ему команды, используя стандартный ввод / вывод. Вы можете добиться большей гибкости, загружая свою библиотеку при запуске fsi.exe
. Библиотека может использовать .NET Remoting для подключения к вашему приложению и предоставления некоторых данных.
К сожалению, эти два варианта, вероятно, единственные вещи, которые вы можете сделать в данный момент.
РЕДАКТИРОВАТЬ Я думал, что уже где-то ответил на этот вопрос (возможно, по электронной почте), но не смог
Найди это! Спасибо Маурисио, который нашел точную копию (даже с моим повторным ответом ... Дох!)