Подключение объектов из произвольных сборок .NET #322512


#0 by Gepard
Подключение объектов из произвольных сборок .NET Начало здесь Скачать архив с ВК и примером можно здесь:
#1 by ТелепатБот
#2 by Gepard
UP
#3 by Gepard
В примере есть метод получения файла с сайта
#4 by Gepard
UP
#5 by Gepard
UP
#6 by The gray Cardinal
"Невозможно создание объекта контейнером ActiveX: 'ObjectFerm'" Батник запускал, всё типа успешно. В реестре после этого про 'ObjectFerm' не нашёл ни слова :))
#7 by Gepard
ну 1С ведь еще подключает AddIn.Gepard а потом эти объекты создаются... надо подумать...
#8 by Gepard
попробуй так подключить это (это не ВК)
#9 by Gepard
если получится, опубликую исходник этого...
#10 by Gepard
прикольно, но в 1С работает
#11 by Gepard
- здесь эта же библиотека + отчет для 77
#12 by The gray Cardinal
System: Удаленный сервер возвратил ошибку: Требуется проверка подлинности посредника. Это при вызове метода "DownloadFile".
#13 by Gepard
а другой сайт?
#14 by Gepard
у меня через 1С с мисты качает нормально странички
#15 by Gepard
еще прикол может у тебя прокся?
#16 by Gepard
работа через прокси
#17 by The gray Cardinal
Да, действительно прокся. Сейчас буду пробовать...
#18 by Gepard
Кто знает, как передать из 1С Object[] ?
#19 by The gray Cardinal
Тьфу, блин, я не понимаю, как передать параметры в конструктор WebProxy при таком синтаксисе:
#20 by Gepard
сейчас сделаю механизм параметров
#21 by The gray Cardinal
Вообще, мне хотелось заполучить не внешнюю компоненту для 1С, а всего лишь .NET COM-Wrapper :))
#22 by The gray Cardinal
И ещё: можно как-то задать параметры proxy не в конструкторе, а после создания объекта, через его свойства? Посмотрел в MSDN, что-то не понял, возможно ли это...
#23 by Gepard
да можно, но там надо создавать URI а он обязательно с параметрами это не ВК, это просто COM объект
#24 by The gray Cardinal
А что такое gacutil.exe в архиве?
#25 by Морозов Александр
Нафига оно?
#26 by Gepard
для помещения сборки в глобальный кэш
#27 by Gepard
С параметрами пока не густо :((
#28 by The gray Cardinal
Это стандартная утиль или твоя?
#29 by Gepard
стандартная
#30 by Gepard
Вот такая штука... в 1С WebProxy запустить не получилось Может в VB пойдет OF2.SetParameterCount; После этого вызвать метод GetObjectP - он специально для создания объекта с параметрами GetObject - без параметров
#31 by The gray Cardinal
Ясно, спасибо. Если победишь параметры, будет здорово :)
#32 by Gepard
может оно и будет работать.. попробуй в такое сделать
#33 by Gepard
Как и обещал, исходники:
#34 by The gray Cardinal
Блин, не могу я это попробовать. У меня это не работает (опять "Требуется проверка подлинности посредника"), и видимо потому, что компьютер-прокси не пингуется с моей машины (так хитропопо настроен файервол, мать его) :))) web.DownloadFile "http://www.forum.mista.ru/topic.php?id=322512", "c: empmyfile.htm" Вечером попробую без прокси.
#35 by Gepard
нифига себе адрес... 255.255.255.255... это все адреса что ли??? думаю адрес прокси неверный
#36 by Gepard
а так все вроде правильно... Единственно вопрос: а отчего зависит, в скобках или нет процедура?
#37 by Gepard
в смысле параметры процедуры
#38 by The gray Cardinal
Тебе обязательно реальный адрес моего прокси нужен? :)))))))) Если хочешь получить возвращаемое значение - пишется со скобками, иначе -без.
#39 by Gepard
п.1 А я повелся...:)) п.2 Понятно, спасибо
#40 by The gray Cardinal
Отлично, без прокси вот этот код работает:   web.DownloadFile "http://www.forum.mista.ru/topic.php?id=322512", "c: empmyfile.htm"   Кстати, ты за корпоративной проксёй? Если так, то ты можешь код из очень легко сам проверить :)
#41 by Gepard
нее, у меня NAT
#42 by Gepard
+ точнее цепочка NAT'ов
#43 by KLMR
По английски ферма будет fArm. И обычно такая фигня не фермой называется а фабрикой. А в общем всё круто. Огромный сенкс.
#44 by The gray Cardinal
Спасибо огромное, кстати :) Как бы твоё мыло узнать? ;) (Аси у меня нет.)
#45 by Gepard
d01 собака mail.ru спасибо за исправление... но уже поздно
#46 by The gray Cardinal
+ Моё мыло в правом верхнем углу этой странички:
#47 by Gepard
+ я просто уже привык к русским наименованиям...
#48 by The gray Cardinal
Осмелюсь задать ещё один, наверное гораздо более сложный, вопрос. А можно ли обеспечить callback через COM? Например, в .NET не проблема зарегистрировать и вызвать функцию Win32API. Однако некоторые функции Win32API требуют в качестве аргумента ссылку на callback-функцию. Такие вещи использовать в VBScript крайне проблематично. Т.е. хотелось бы получить что-то вроде (VBScript):   Function foo(hwnd, dummy) GetRef - реальная функция в VBScript, возвращает _объект_, который содержит что-то вроде ссылки на функцию. Функция GetRef может использоваться в клиентских скриптах на HTML-страницах для назначения функций событиям DHTML.
#49 by KLMR
Проще написать .Net Com-visible dll, c таким функционалом, раз уж всё равно перегружать код всякими DotNetWin32apiWrapper. PS Осталось дождаться До-Диез-Скрипт-Хост :)
#50 by The gray Cardinal
Я не против .Net Com-visible dll c таким функционалом, я практически об этом и говорю :)
#51 by Gepard
не, он к тому, что весь код на .NET - без DotNetWin32apiWrapper
#52 by Gepard
наверное делегат надо делать... а потом его подписывать... в общем даже не знаю...
#53 by Gepard
в чистом .NET это легко... а вот так, между приложениями...
#54 by The gray Cardinal
Понятно :) Но весь код на .NET может быть плох тем, что его надо компилировать, всё-таки .NET - не совсем интерпретатор :)
#55 by Gepard
сборки кажется можно загружать из исходников (не уверен)
#56 by The gray Cardinal
Фишка не в том, чтобы вызывать только что зарегистрированную функцию как метод - это не обязательно. Фишка в том, чтобы организовать callback :)
#57 by Gepard
Завтра попробую сделать вызов сборки из исходников, а не из DLL
#58 by The gray Cardinal
Мне это тоже интересно.
#59 by Gepard
Уже готово, правда с русскими наименованиями... сейчас выложу с внешним отчетом 1С
#60 by The gray Cardinal
А можно с нерусскими? А то для большинства языков, кроме 1С, в таком виде наверное бесполезно :)
#61 by Gepard
сделаем, сначала так, минут через 10 добавлю еще один класс если не трудно как раз может английские синонимы подберешь
#62 by Gepard
#63 by The gray Cardinal
Всё-таки не получается пример с прокси.   Set OF = CreateObject("ObjectFerm") OF.SetParameterCount 2 OF.SetParameterValue 0, "proxy.mydomain.ru" ' IP прокси OF.SetParameterValue 1, 8080 ' порт прокси Есть впечатление, что GetObjectP возвращает что-то не то... Это видно в примере по вызову TypeName - все объекты, созданные с помощью GetObjectP, не имеют имени типа, они просто "Object".
#64 by Gepard
для таких случаев ;)
#65 by Gepard
и GetObjectP и GetObject возвращают именно Object
#66 by The gray Cardinal
Не согласен :))) - это _очень_ простой случай, имхо. Странно... Обращение через точку к свойствам объектов, возвращённых GetObjectP, приводит к ошибке "требуется объект" (с объектами, возвращёнными GetObject, этого не происходит). При этом TypeName для первых всегда возвращает "Object", а для вторых - возвращает имя класса. Т.е. объекты, возвращённые GetObjectP, как будто "неправильные"...
#67 by jbond
- может так:
#68 by Gepard
сейчас попробую поменять параметры
#69 by The gray Cardinal
Стопудей, что-то не так :) К примеру, вот НЕ работает:     А вот так уже работает:   web.Proxy = prx   Что-то ты там делаешь с типами нехорошее ;)
#70 by The gray Cardinal
И ещё: .GetType.ToString сделать этим волшебным объектам тоже нельзя, ругаются "требуется объект".
#71 by Gepard
попробуй
#72 by The gray Cardinal
Нет, абсолютно то же самое.
#73 by Gepard
попробуй заново скачать, я проверил у себя - работает, дает правильный тип объекта
#74 by The gray Cardinal
Да нет же, всё тот же "Object". Качаю . Исходника там нет, кстати.
#75 by Gepard
у меня вот это .GetType.ToString дает нормальное описание класса
#76 by The gray Cardinal
Ты уверен, что выложил то, что надо? Сейчас проверил на другой машине - чётко то же самое. Всё тот же "Object", а GetType просто вызывает исключение.   (All) Проверьте, кто может, please.
#77 by The gray Cardinal
+ На всякий случай: речь об объектах, возвращаемых GetObjectP, но не GetObject.
#78 by Gepard
да, мой код проверки ObjectFerm myFerm = new ObjectFerm;
#79 by The gray Cardinal
Твой код на JScript:   Результат: C:Temp est.js(6, 1) Ошибка выполнения Microsoft JScript: "myObject" -  есть null или не является объектом
#80 by The gray Cardinal
Блин, ты ж на C# тестируешь :)) У тебя эти типы хаваются, а в WSH - нет. Легко можешь проверить: в ткстовый файл .js и запускаешь двойным щелчком.
#81 by Gepard
попробую разобраться... но шарп еще придирчивей в таких случаях
#82 by The gray Cardinal
Нет, в ТАКИХ случаях шарп не придирчивей. Это его родные типы. А вот для WSH - это проблемные типы.
#83 by Gepard
нет, шарп, строго типизирован... если у тебя объект не приведен к типу, через  точку метод или свой свойство получить не получится... но тут видимо какая-то фигня с аттриубтами получаемого объекта...
#84 by Gepard
нет, шарп, строго типизирован... если у тебя объект не приведен к типу, через  точку метод или свойство получить не получится... но тут видимо какая-то фигня с аттриубтами получаемого объекта...
#85 by The gray Cardinal
Может, что-то прояснит:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С