Я хочу выполнить код JavaScript из сборки C# и вернуть результаты кода JavaScript в вызывающий код C#.
Легче определить вещи, которые я не пытаюсь сделать:
Я не пытаюсь вызвать функцию JavaScript на веб-странице из своего кода.
Я не пытаюсь загрузить элемент управления WebBrowser.
Я не хочу, чтобы JavaScript выполнял вызов AJAX на сервер.
Что я хочу сделать, так это написать модульные тесты на JavaScript, а затем модульные тесты выводят JSON, даже обычный текст будет в порядке. Затем я хочу иметь общий класс/исполняемый файл C#, который может загружать файл, содержащий JS, запускать модульные тесты JS, удалять/загружать результаты и возвращать данные об успешном/неудачном завершении во время задачи после сборки.
Я думаю, что это возможно с использованием старого ActiveX ScriptControl, но кажется, что должен быть способ .NET сделать это без использования SilverLight, DLR или чего-либо еще, что еще не выпущено. У кого-нибудь есть идеи?
обновление: из блога Брэда Абрамса
namespace Microsoft.JScript.Vsa
{
[Obsolete("There is no replacement for this feature. " +
"Please see the ICodeCompiler documentation for additional help. " +
"http://go.microsoft.com/fwlink/?linkid=14202")]
Уточнение: у нас есть модульные тесты для наших функций JavaScript, которые написаны на JavaScript с использованием фреймворка JSUnit. Прямо сейчас, во время нашего процесса сборки, мы должны вручную загрузить веб-страницу и нажать кнопку, чтобы убедиться, что все модульные тесты JavaScript пройдены. Я хотел бы иметь возможность выполнять тесты во время процесса после сборки, когда запускаются наши автоматические модульные тесты С#, и сообщать об успехе/неуспехе вместе с нашими модульными тестами С# и использовать их в качестве индикатора того, является ли сборка или нет сломано.