При разработке JavaScript — приложений на платформе .NET очень часто, даже не очень, а требуется использовать JavaScript — функции вызова кода C#. Так как JavaScript не умеет пользоваться файловой системой не может работать с БД, то нам необходим код C#, который подгрузит данные из файла, запишет в файл, почитает и перезапишет данные в БД, обработает методами .NET данные и т.д.
Есть 2 похода того, как это сделать:
- использовать специальный метод JS window.external, который будет содержать метод, определяемый в классе COM — объекта;
- использовать ASP.NET страницы или любого другого серверного языка и подгрузить их через Ajax — запросы.
В данном посте рассмотрим первый вариант. Ниже представлен класс, который мы определяем , как видимый COM — объект
namespace MyApp { [ComVisible(true)] //Устанавливаем как видимый COM public class ScriptClass { public ScriptClass() { } //Данный метод будем вызывать из JS public void readFile() { MessageBox.Show("File Reading!"); } } }
Далее нужно установить параметры для браузера, который мы используем в проекте
WebBrowser webBrowser = new WebBrowser(); webBrowser.ObjectForScripting = new ScriptClass(); webBrowser.Navigate("http://wsofter.com/");
Теперь, чтобы запустить данный код из JS, нам надо написать в обработчике такой код
window.external.readFile();