Как я могу заставить C # взаимодействовать с Javascript? - PullRequest
6 голосов
/ 27 марта 2009

Я бы хотел разместить Javascript в моей программе на C #. Я хотел бы позволить пользователям писать собственный код Javascript, и чтобы моя программа на C # выполняла их функции, а также позволяла пользователям использовать мой код инфраструктуры.

Возможно ли это сделать? Если да, то как?

Редактировать: Для ясности, я не использую ASP.NET для этого проекта.

Ответы [ 6 ]

3 голосов
/ 27 марта 2009

Вы также можете использовать элемент управления webbrowser для размещения javascript в html-документе, чтобы взаимодействовать между ними, вы бы сделали видимый COM-класс и установить его экземпляр в свойстве ObjectForScripting.

Любые открытые члены класса 'external' теперь доступны через window.external в javascript. Кроме того, со стороны управляемого кода вы можете использовать метод документа InvokeScript для вызова любых функций JavaScript.

Таким образом, легко передавать сложные объекты между ними.

Я довольно часто использовал эту идею в этом приложении Google Планета Земля Api. http://fraserchapman.blogspot.com/2008/08/google-earth-plug-in-and-c.html

2 голосов
/ 27 марта 2009

Я настоятельно рекомендую использовать Microsoft Dynamic Langauage Runtime (DLR) . Его цель в жизни - облегчить создание сценариев в среде .Net. DLR не привязан к конкретному сценарию, поэтому со временем на нем будет построено больше языков сценариев, но на данный момент я знаю о IronRuby, IronPython и JScript.

1 голос
/ 27 марта 2009

Для этого раньше использовался Windows Script Host, который позволял вам размещать JSCript или VBScript.

1 голос
/ 27 марта 2009

Spidermonkey .NET Это, вероятно, то, что вы ищете.

Я не уверен, насколько он развит. Но в основном это порт Spidermonkey от Mozilla Javascript, который мне очень нравится.

Или вы можете оценить напрямую

0 голосов
/ 27 марта 2009

Есть HTML-компоненты, в которые вы можете встроить JavaScript. С другой стороны, правильной вещью является веб-сервис ASP.NET. Возможно, с умным клиентом вы можете комбинировать оба.

0 голосов
/ 27 марта 2009

Вы, безусловно, можете запускать Javascript изначально из C # - см. в этой статье для начала. Однако доступ к Javascript к вашей среде может оказаться сложным. Возможно Script # может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...