Доступ к свойствам неизвестного объекта - возможно ли такое?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Доступ к свойствам неизвестного объекта - возможно ли такое?

Сообщение Roman Koff » 29.10.2008 (Ср) 11:31

Есть некий объект типа Object или T передаваемый в процедуру
Существует ли какаянибудь возможность работать с свойствами этого объекта? Например прочитать/записать данные абстрактного поля объекта?

Объект на входе может быть любым, известно лишь название и тип свойства к которому надо обратиться

Код: Выделить всё
Sub Release(Of T)(ByVal pReg As List(Of T))
   For Each _Item As T In pReg

   Next
End Sub
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Доступ к свойствам неизвестного объекта - возможно ли такое?

Сообщение Денис » 29.10.2008 (Ср) 13:46

Предположу, что нужно объявить интерфейс, прописать в нем необходимые методы и сопоставить этот интерфейс с объектами T
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Доступ к свойствам неизвестного объекта - возможно ли такое?

Сообщение Sebas » 29.10.2008 (Ср) 14:00

Хм, а это (дженирик) оправдывает себя? Может воспользоваться интерфейсами?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Доступ к свойствам неизвестного объекта - возможно ли такое?

Сообщение Roman Koff » 29.10.2008 (Ср) 15:31

Проблема в след.:
Есть некий абстрактный объект, к которому надо прикрутить объект управления.
На входе объекта управления имеются: абстрактный объект, список полей для управления (брутально имена) и их типы
На выходе: интерфейс редактирования свойств объекта.

Все это для унификации пользовательского интерфейса управления различными объектами данных.

В случае с одиночным объектом все просто реализуется с помощью сериализации/десериализации. Через XmlDocument можно получить доступ к любому элементу объекта сериализуемому например в виде XmlAttribute или XmlElement.

Хоцца сделать вывод для реестров объектов одного абстрактного типа. Здесь сериализация видимо будет не совсем оправдана. Если объектов 1000, то, как я понимаю, будут большие накладные расходы.

Кроме сериализации нет решений?


Интерфейс как вариант, но при этом проблематично совместить оформление пользовательского представления и данные ... Грубо говоря, как объяснить, что объявленное в интерфейсе свойство Login должно иметь подпись в пользовательском предствалении "Логин"
Слава роботам! Убить всех человеков! Bite my shiny metal ass!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 103

    TopList