![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
IEZ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Приветсвую Всех!
В проге получаю Fields другой .Net сборки:
Вопрос: а можно ли из полученного получить сам ImageList со всем его содержимым? Или это делается как-то по другому? Спасибо. Это сообщение отредактировал(а) IEZ - 9.9.2007, 03:06 -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
||||
|
|||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
да, через FieldInfo.GetValue() или Type.InvokeMember()
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
А что это такое? Не могу понять, что за класс? -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
это был пример :( . ты хочешь получить ImageList, который хранится в каком-то реальном экземпляре какого-то реального класса? Так вот, для этого в FieldInfo.GetValue() или Type.InvokeMember() нужно передать ссылку на тот объект, который хранит нужный тебе ImageList. Вот я и написал, что: - создается сначала объект класса MyClass (к примеру, ты ж не указал что за класс содержит ImageList) - получаем инфу о полях класса, экземплятом которого есть этот объект - перебираем все поля и достаем те значения, которые эти поля имеют в конкретном объекте с именем "с" .... Ладно... Давай по твоему коду:
Экземпляров класса MyClass у тебя в программе могут быть сотни, нужно же указать, ImageList какого из них тебе нужен? -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Я конечно туплю, но как эту ссылку получить? -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Это может быть проблемой, т.к. в первом посте ничего про объекты не говорится, а только грузится DLL и получается инфа о типах. -------------------- ![]() |
|||
|
||||
IEZ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Вот как выглядит весь код:
Это сообщение отредактировал(а) IEZ - 9.9.2007, 15:00 -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
||||
|
|||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
IEZ, теперь понятно. Но ведь ты хочешь
а как можно получить из объекта содержимое, если ты сам объект не создал? Пока ты только читаешь его метаданные и все. Справочную информацию о типе получаешь. Чтобы получить заполненный ImageList сначала нужно создать объект класса Proga.DlgList, инициализировать его (и его член - ImageList заполнить), а потом уже что-то получать ![]() вот изменения в коде
Опять же, это работает если при создании объекта Proga.DlgList конструктором по умолчанию он инициализирует свой ImageList. Иначе список тебе вернется пустым. Это сообщение отредактировал(а) tol05 - 9.9.2007, 20:31 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Не совсем понятное определение объекта.
А как это сделать? Это сообщение отредактировал(а) IEZ - 9.9.2007, 22:01 -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
может ты опишешь свою задачу полностью? Зачем тебе FieldInfo, что такое Proga.exe?
Это .Net приложение? Работает Proga.exe когда твое приложение работает? Что сделать? Я не знаю как и когда DlgList заполняет свой список. Вариантов взаимодействия много. Опять же повторяю, опиши задачу свою. а по поводу ты используешь перегрузку метода
где name - полносью квалифицированное имя типа. Вот я и предположил, что полное имя будет "Proga.DlgList". Но я не претендую именно на это имя и ты можешь его изменить на реальное. ![]() -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Есть прога, которой (зная путь к другой сборке) необходимо из нее получить ImageList с изображениями и их номерами по порядку. Это сообщение отредактировал(а) IEZ - 9.9.2007, 22:43 -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
Когда твой класс при своем создании заполняет свой ImageList - тогда подходит мой вариант кода (см. выше)
Если список картинок заполняется при каких-то операциях с классом - то нужно на созданном obj вызвать эти действия (через InvokeMember, например) и потом получить value. А вообще-то ИМХО такие вещи делают через ремотинг, а не через рефлексию. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Где почитать или примеры можно посмотреть? -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
tol05 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
почитать - в учебниках.
"C# 2005 дл\ профессионалов" Троелсен Маклин и др, "Microsoft .NET Remoting" пример (клиент-сервер-удаленный) объект набросал такой: удаленный объект (RemoteObj.dll)
сервер (Proga.exe)
клиент (Client.exe)
запускаешь сервер, потом клиент. через доменный ремоутинг все гораздо проще. Всего одна сборка клиента, загружающая в своей домен сборку Proga
-------------------- На хорошей работе и сны хорошие снятся. |
||||||||
|
|||||||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
tol05, спасибо за помощь.
![]() -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |