Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2011, 13:18   #1
lorpine
Новичок
Джуниор
 
Регистрация: 10.03.2011
Сообщений: 2
По умолчанию вызов скрипта из C# приложения

Всем доброго времени суток!
У меня следующая проблема. есть приложение на си шарпе из которого надо вызвать функцию из скрипта (скрипт на вб или java-скрипт), и передать в эту функцию объект параметром ну к примеру OracleConnection. Пытался делать через MSScriptControl.ScriptControlClass всё получается и работает если просто вызываеш скрипт но объект OracleConnection в скрипт не передаётся, я так понял что проблема в том что объект для передачи в скрипт должен поддерживать idispacth. пробовал писать некий врапер в который заворачивал этот объект, работает, но это не то, нужно передать доп нетовский объект напрямую в скрипт и в скрипте пользоваться методами этого объекта.
Нашёл следующий пример.
Код:
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 Доп-нетовские объекты в скрипт нужно передовать как глобально(чтоб один и тот же объект был доступен из всех фуункций скрипта) так и параметром функции
lorpine вне форума Ответить с цитированием
Старый 14.03.2011, 10:11   #2
lorpine
Новичок
Джуниор
 
Регистрация: 10.03.2011
Сообщений: 2
По умолчанию

и тишина люди ответте
lorpine вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MirrorCode вызов функции из другого скрипта Blualeono JavaScript, Ajax 0 17.02.2011 16:44
Программный вызов другого приложения из Excel ru3000 Microsoft Office Excel 4 25.06.2009 11:16
Вызов одного приложения из другого zalum Общие вопросы Delphi 8 24.04.2009 09:05
Удаленный вызов скрипта на веб сервере Garacio_cain Работа с сетью в Delphi 1 09.03.2009 22:39
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21

Реклама для незарегистрированных, регистрация на форуме