Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
lorpine
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 5
1

вызов скрипта из C# приложения

10.03.2011, 12:14. Просмотров 3006. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток!
У меня следующая проблема. есть приложение на си шарпе из которого надо вызвать функцию из скрипта (скрипт на вб или java-скрипт), и передать в эту функцию объект параметром ну к примеру OracleConnection. Пытался делать через MSScriptControl.ScriptControlClass всё получается и работает если просто вызываеш скрипт но объект OracleConnection в скрипт не передаётся, я так понял что проблема в том что объект для передачи в скрипт должен поддерживать idispacth. пробовал писать некий врапер в который заворачивал этот объект, работает, но это не то, нужно передать доп нетовский объект напрямую в скрипт и в скрипте пользоваться методами этого объекта.
Нашёл следующий пример.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static Microsoft.JScript.Vsa.VsaEngine Engine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
        public static object EvalJScript(string JScript)
        {
            object Result = null;
            try
            {
                Result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
            return Result;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string str_connection ="строка соединения"
 
            OracleConnection Connection = new OracleConnection(str_connection);            
 
            object Result = EvalJScript("(function Test(Connection) { Connection.Open(); return Connection.ToString(); })");
            Closure close = Result as Closure;
            Result = close.Invoke(close, new object[2] { Connection });
 
            MessageBox.Show(Result.ToString());
Тут получилось передать в скрипт объект и вызвать внутри скрипта его методы но проблема в том что у меня в скрипте будет несколько функций и мне надо будет из разных мест в программе вызывать фунцию скрипта по её имени а как в этом примере так сделать не понимаю. Спасибо всем за помощь.
Если что-то описал не точно задавайте вопросы уточню.
Жду ответов
PS Доп-нетовские объекты в скрипт нужно передовать как глобально(чтоб один и тот же объект был доступен из всех фуункций скрипта) так и параметром функции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2011, 12:14
Ответы с готовыми решениями:

Вызов скрипта
Нужно вызвать скрипт на выполнение из webbrowser, скрипт хранится в файле...

Запуск python скрипта из C# приложения
Доброго времени суток, помогите пожалуйста реализовать несложную задачку: есть...

Вызов чужого приложения
Нужно из сервиса запустить приложение (например калькулятор) В самом сервисе...

Вызов стороннего приложения из трея
Добрый вечер. Много раз попадал на глаза такая тема (или схожая), но вот и...

Вызов приложения с передачей параметров
Dobriy den'!! Mne nujno vizvat' prilojenie i peredat' emu parametri iz...

5
Eugene22
_
2351 / 1224 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
10.03.2011, 14:19 2
Есть вроде неплохой проект -JINT - там есть информация по взаимодействию шарпа с джаваскриптом
1
lorpine
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 5
10.03.2011, 14:33  [ТС] 3
Eugene22 спасибо поизучаю.
жду ещё предложений
0
Eugene22
_
2351 / 1224 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
10.03.2011, 15:05 4
Вот еще очень хорошая статья по этому вопросу.
1
lorpine
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 5
10.03.2011, 15:25  [ТС] 5
А возможно ли вопрос решить средствами из пространства имён Microsoft.JScript? я пока пытался в этом направлении копать
0
lorpine
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 5
14.03.2011, 10:10  [ТС] 6
И тишина народ ответте ктонить
0
14.03.2011, 10:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2011, 10:10

Вызов функции при закрытии консольного приложения
Пытаюсь реализовать вызов функции при закрытии консольного приложения(будь то...

Вызов функции или процедуры главного приложения с dll C#
Добрый день !!! :)Есть программа которая подключает плагины к себе, в одном из...

Вызов скрипта с параметрами скрипта рекурсивно с своими глобальными переменными каждый вызов
Всем привет, есть скрипт у которого глобальные переменные на весь файл. Хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru