Интерфесы и коллекция
От: MagAlx  
Дата: 30.11.01 10:15
Оценка:
Скажите, уважаемые! Какой интерфейс должен поддерживать COM-объект, чтобы он мог храниться в Collection ( VB Collection) ?
Re: Интерфесы и коллекция
От: IT Россия linq2db.com
Дата: 30.11.01 15:42
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>Скажите, уважаемые! Какой интерфейс должен поддерживать COM-объект, чтобы он мог храниться в Collection ( VB Collection) ?


Что бы хранится в коллекции никакого интерфейса вроде как и не надо, но, что бы написать коллекцию нужно немного потрудится. Вот здесь это обсуждалось http://www.rsdn.ru/forum/message.asp?mid=10104
Автор: OlegO
Дата: 26.10.01
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Интерфесы и коллекция
От: MagAlx  
Дата: 30.11.01 16:29
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте MagAlx, Вы писали:


MA>>Скажите, уважаемые! Какой интерфейс должен поддерживать COM-объект, чтобы он мог храниться в Collection ( VB Collection) ?


IT>Что бы хранится в коллекции никакого интерфейса вроде как и не надо, но, что бы написать коллекцию нужно немного потрудится. Вот здесь это обсуждалось http://www.rsdn.ru/forum/message.asp?mid=10104
Автор: OlegO
Дата: 26.10.01


Тогда извольте потрудиться и посмореть пробелму, описаную в COM issue
Re[3]: Интерфесы и коллекция
От: IT Россия linq2db.com
Дата: 30.11.01 16:41
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>Тогда извольте потрудиться и посмореть пробелму, описаную в COM issue


Поконкретней, пожалуйста, где этот COM issue.
А лучше вопрос сформулировать по-понятнее. Лично я ещё ни разу в этой жизни не писал какой-бы то ни было специальной поддержки для классов, включаемых в коллекции.

Если имеются ввиду рекомендации MS для объектных моделей приложений, то это уже другой вопрос, который и задавать надо по другому.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Интерфесы и коллекция
От: MagAlx  
Дата: 30.11.01 16:44
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте MagAlx, Вы писали:


MA>>Тогда извольте потрудиться и посмореть пробелму, описаную в COM issue


IT>Поконкретней, пожалуйста, где этот COM issue.

IT>А лучше вопрос сформулировать по-понятнее. Лично я ещё ни разу в этой жизни не писал какой-бы то ни было специальной поддержки для классов, включаемых в коллекции.

IT>Если имеются ввиду рекомендации MS для объектных моделей приложений, то это уже другой вопрос, который и задавать надо по другому.


Он звучал так:
Hello All,I have a problem, and possibly you would be able to advise.
Thank you very much in advance for your kind help and answer(of course, answer if you only have time).


Description:
There is some COM object which is created as following

Set MYStatuses = New MYCOMLib.MYClient
object can be created and works somehow, but it can't be saved to the session
the session variable is empty after
Set masterWebClass.Session("MY_CLIENT") = MYStatuses

OR

Set MYStatuses = New MYCOMLib.MYClient
Set x = MYStatuses

Attention!! The x varible not is Nothing but afer next operation (see below), the masterWebClass.Session("MY_CLIENT") is Empty
Set masterWebClass.Session("MY_CLIENT") = x

1) What can be possible reason of such a behavior?
2) should COM component have something special to allow save it to and restore it from ASP Session?
Special interface or something like that?

WBR,Alexander
Re[5]: Интерфесы и коллекция
От: IT Россия linq2db.com
Дата: 30.11.01 17:20
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>1) What can be possible reason of such a behavior?

MA>2) should COM component have something special to allow save it to and restore it from ASP Session?
MA>Special interface or something like that?

Оснований для такого поведения много, но это никак не связано со специальными интерфейсами, о которых я пока не слышал.
В MSDN, практически в каждой статье говорится о том, что сохранять что-либо в сессии не есть очень хорошо, так как не надёжно. Лучше пользоваться кукесами, хотя в них объекты и не затолкаешь. Либо придумывать другие решения. В частности, одной из проблем может быть то, что IE для страниц с фреймами не может использовать тот же самый процесс, а так как информация о сессии сохраняется в памяти процесса, то в этом случае IE открывает новую сессию и, следовательно, переменные старой сессии уже недоступны. В общем, здесь нужен более подробный пример, желательно без лишней воды.
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Интерфесы и коллекция
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.01 21:55
Оценка:
Здравствуйте MagAlx, Вы писали:


MA>Attention!! The x varible not is Nothing but afer next operation (see below), the masterWebClass.Session("MY_CLIENT") is Empty

MA>Set masterWebClass.Session("MY_CLIENT") = x

А что за зверь masterWebClass? Это случайно не ASP-шный Application?

Если это свой (самопальный) объект, то проблема (думаю) в нем.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Интерфесы и коллекция
От: MagAlx  
Дата: 03.12.01 09:55
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте MagAlx, Вы писали:



MA>>Attention!! The x varible not is Nothing but afer next operation (see below), the masterWebClass.Session("MY_CLIENT") is Empty

MA>>Set masterWebClass.Session("MY_CLIENT") = x

VD>А что за зверь masterWebClass? Это случайно не ASP-шный Application?


VD>Если это свой (самопальный) объект, то проблема (думаю) в нем.


Это просто WebClass!
Re[6]: Интерфесы и коллекция
От: MagAlx  
Дата: 03.12.01 09:58
Оценка:
IT>В MSDN, практически в каждой статье говорится о том, что сохранять что-либо в сессии не есть очень хорошо, так как не надёжно. Лучше пользоваться кукесами, хотя в них объекты и не затолкаешь. Либо придумывать другие решения. В частности, одной из проблем может быть то, что IE для страниц с фреймами не может использовать тот же самый процесс, а так как информация о сессии сохраняется в памяти процесса, то в этом случае IE открывает новую сессию и, следовательно, переменные старой сессии уже недоступны. В общем, здесь нужен более подробный пример, желательно без лишней воды.

1) Это дело такое, что написано я знаю :))
2) Как из примера видно, дело не во фреймах, Collection объект храниться, любой другой объект, который ИМИ поставлялся — тоже храниться, а вот имеено с этим проблемы?
Re[7]: Интерфесы и коллекция
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.01 12:27
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>Это просто WebClass!


Так это твой объект или чужой?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Интерфесы и коллекция
От: MagAlx  
Дата: 03.12.01 12:46
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте MagAlx, Вы писали:


MA>>Это просто WebClass!


VD>Так это твой объект или чужой?


Это не мой — это MS -ный в ISS Application
М еще раз прошу обратить внимание —
стандартный Collection и какой-либо другой, сделанный ИМИ или мной, сохранияется, а вот ИМЕННО ТОТ — ОДИН, из-за которого и написал письмо!
Вот мне и инетерсно, как ПРОБЛЕМНЙЫЙ объект написан так, что его не получается впихнуть в Session.Contens Collection!
И пожалуйста, посылайте предположения только обоснованные, поговорить можно и так, как-нибудь!
Re: Интерфесы и коллекция
От: DNS Россия  
Дата: 03.12.01 13:02
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>Скажите, уважаемые! Какой интерфейс должен поддерживать COM-объект, чтобы он мог храниться в Collection ( VB Collection) ?


Может быть проблема в
PRB: Storing STA COM Component in Session Locks Session Down to Single Thread
ID: Q243815


Успехов!
Д.Н.С.
Re[5]: Интерфесы и коллекция
От: IT Россия linq2db.com
Дата: 03.12.01 14:59
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>Set MYStatuses = New MYCOMLib.MYClient


Кстати, а почему через New? Объекты в ASP лучше создавать с помощью Server.CreateObject.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Интерфесы и коллекция
От: MagAlx  
Дата: 03.12.01 15:07
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте MagAlx, Вы писали:


MA>>Set MYStatuses = New MYCOMLib.MYClient


IT>Кстати, а почему через New? Объекты в ASP лучше создавать с помощью Server.CreateObject.


БО ЭТО НЕ ASP — SCRIPT!
И связывание на уровне виртуальной таблицы
Re[7]: Интерфесы и коллекция
От: IT Россия linq2db.com
Дата: 03.12.01 15:25
Оценка:
Здравствуйте MagAlx, Вы писали:

MA>БО ЭТО НЕ ASP — SCRIPT!


^%#$%, совсем голову заморочил. почитай вот это на досуге — http://delphi.mastak.ru/vopros/index.html , очень помогает правильнее воспринимать бытиё.

MA>И связывание на уровне виртуальной таблицы


А это ещё чё за связывание такое? Раннее бейсиковское что-ли? Так оно не обязательно должно работать через VTBL, объект может и не поддерживать дуального интерфейса.

В общем, судя по расплывчатой информации, проблема у тебя скорее всего либо в masterWebClass либо в правильности его использования. Я например совсем не уверен, что конструкция

Set masterWebClass.Session("MY_CLIENT") = x


должна автоматически создавать элемент коллекции "MY_CLIENT". Не исключено, что ты сам заранее должен об этом позаботиться и прежде вызвать какое-нибудь

masterWebClass.Session.Add("MY_CLIENT")
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Интерфесы и коллекция
От: Аноним  
Дата: 03.12.01 15:45
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте MagAlx, Вы писали:


MA>>БО ЭТО НЕ ASP — SCRIPT!


IT>^%#$%, совсем голову заморочил. почитай вот это на досуге — http://delphi.mastak.ru/vopros/index.html , очень помогает правильнее воспринимать бытиё.


MA>>И связывание на уровне виртуальной таблицы


IT>А это ещё чё за связывание такое? Раннее бейсиковское что-ли? Так оно не обязательно должно работать через VTBL, объект может и не поддерживать дуального интерфейса.


IT>В общем, судя по расплывчатой информации, проблема у тебя скорее всего либо в masterWebClass либо в правильности его использования. Я например совсем не уверен, что конструкция


IT>
IT>Set masterWebClass.Session("MY_CLIENT") = x 
IT>


IT>должна автоматически создавать элемент коллекции "MY_CLIENT". Не исключено, что ты сам заранее должен об этом позаботиться и прежде вызвать какое-нибудь


IT>
IT>masterWebClass.Session.Add("MY_CLIENT")
IT>



Давай определим вещи!
masterWebClas is WebClass, который написан MS и используется дизайнеором в VB? когда создается проект типа IIS Application! Он совершенно нормальный! Так как вся проблема заключается именно в классе MyClient, Этот класс был разработан не ной, и возможность получение Source Code равна 0! В Session.Add("MY_CLIENT") можно "бросать" любые объкты, которые мне необходимо, но именно с этим объктом (MyClient) — ПРОБЛЕМА!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.