Chciałbym wykonać kod JavaScript z poziomu złożenia C# i uzyskać wyniki kodu JavaScript zwrócone do wywołującego kodu C#.Wykonywanie kodu JavaScript z poziomu zestawu C#
Łatwiej określić rzeczy, które nie próbuję zrobić:
Nie próbuję wywołać funkcję JavaScript na stronie WWW z mojego kodu tyłu.
Nie próbuję załadować formantu WebBrowser.
Nie chcę, aby JavaScript wykonywał wywołanie AJAX na serwerze.
Co chcę zrobić, to napisać testy jednostkowe w JavaScript, a następnie testy jednostkowe wyjść JSON, nawet zwykły tekst byłby w porządku. Następnie chcę mieć ogólną klasę C#/executible, która może załadować plik zawierający JS, uruchomić testy jednostki JS, złomowanie/załadowanie wyników i zwrócenie pass/fail ze szczegółami podczas zadania po kompilacji.
Myślę, że jest to możliwe przy użyciu starego ActiveX ScriptControl, ale wydaje się, że powinien być sposób .NET, aby to zrobić bez użycia SilverLight, DLR, ani niczego, co jeszcze nie zostało wysłane. Ktoś ma jakieś pomysły?
zmiana: From Brad Abrams blog
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")]
Wyjaśnienie: Mamy testy jednostkowe dla naszych funkcji JavaScript, które są napisane w JavaScript z wykorzystaniem ramy JSUnit. W tej chwili w trakcie procesu budowania musimy ręcznie załadować stronę internetową i kliknąć przycisk, aby upewnić się, że wszystkie testy jednostkowe JavaScript przechodzą pomyślnie. Chciałbym móc wykonać testy w trakcie procesu późniejszego po uruchomieniu naszych automatycznych testów C# i zgłaszać sukces/niepowodzenie wraz z testami jednostkowymi C# i używać ich jako wskaźnika określającego, czy kompilacja Jest zepsuty.
Szkoda, że implementacja Javascript dla DLR została porzucona, uważam, że nazywała się JScriptX, lub byłaby to czysta czysta integracja wraz z dynamicznymi funkcjami C# 4.0. –