|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
На примере (писал в блокноте, но, думаю, смысл понятен) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Как сделать через рефлексию создание экземпляра вложенного класса, если создание экземпляра "основного" класса было реализовано не через рефлексию? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:13 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxix, здесь нет вложенных классов ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:17 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Изопропилsaxix, здесь нет вложенных классов Вложенные в кавычках. Не подобрал термина правильного. Класс A "вложен" в класс B ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:18 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixИзопропилsaxix, здесь нет вложенных классов Вложенные в кавычках. Не подобрал термина правильного. Класс A "вложен" в класс B Класс B имеет член класса A. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:18 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Если бы был не "вложенный", создавал бы через Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:20 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixЕсли бы был не "вложенный", создавал бы через Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Но надо "вписаться" в уже созданный экземпляр класса B ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:21 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixНо надо "вписаться" в уже созданный экземпляр класса B установите значение свойства - в чём проблема ? object к A приведите ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 10:36 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
ИзопропилsaxixНо надо "вписаться" в уже созданный экземпляр класса B установите значение свойства - в чём проблема ? object к A приведите Создать экземпляр по имени через рефлексию могу, получим в результате экземпляр Class1 class1 , а вот как привязать к b.a.a1 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:19 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Мне надо получить что-то типа Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:23 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
а) использовать структуры, они не требуют инициализации б) использовать конструктор класса, который инициализирует все поля внутри класса в) использовать Class.Factory который будет возвращать нужный вам класс по названию, инициализированный как вам угодно г) использовать Activator у меня один вопрос? нафига это? если вы так делайте, значит вы делайте, что то неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:42 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixно, думаю, смысл понятен) непонятен смысл. Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:45 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Изопропилsaxixно, думаю, смысл понятен) непонятен смысл. Код: c# 1. 2. 3. 4.
из этих трех мне нужно создавать только один, с именем, определенным в переменной. То есть для B.a.a1 - a1 задается в переменной. Думаю сделать так. Найти в классе B.a сеттер с именем, заданным в переменной и через него создать экземпляр и присвоить значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:49 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Roman Mejtesа) использовать структуры, они не требуют инициализации б) использовать конструктор класса, который инициализирует все поля внутри класса в) использовать Class.Factory который будет возвращать нужный вам класс по названию, инициализированный как вам угодно г) использовать Activator у меня один вопрос? нафига это? если вы так делайте, значит вы делайте, что то неправильно. Скажем, есть класс - контейнер, в котором хранятся неоднотипные данные. Класс B - контейнер, класс Class1 или Class2 или Class3 - данные. Также в классе объявлен обработчик данных, для каждого класса - свой. Инициализация нужна. Не все классы из этого списка должны быть инициализированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:53 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxix, ну пусть класс свои внутренние и внешние поля инициализирует сам, зачем делать это "снаружи"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 11:58 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Roman Mejtessaxix, ну пусть класс свои внутренние и внешние поля инициализирует сам, зачем делать это "снаружи"? Он не знает заранее, чем их инициализировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:01 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixRoman Mejtessaxix, ну пусть класс свои внутренние и внешние поля инициализирует сам, зачем делать это "снаружи"? Он не знает заранее, чем их инициализировать. Например, класс-контейнер "Гараж". В нем "подкласс" "Тойота", в нем свойства: кол-во, марка, и т.п. Это "грубый" пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:03 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
Roman Mejtesу меня один вопрос? нафига это? если вы так делайте, значит вы делайте, что то неправильно. именно так saxixиз этих трех мне нужно создавать только один, с именем, определенным в переменной. То есть для B.a.a1 - a1 задается в переменной. ну так задайте имя свойства с помощью рефлексии- Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:04 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
ИзопропилRoman Mejtesу меня один вопрос? нафига это? если вы так делайте, значит вы делайте, что то неправильно. именно так saxixиз этих трех мне нужно создавать только один, с именем, определенным в переменной. То есть для B.a.a1 - a1 задается в переменной. ну так задайте имя свойства с помощью рефлексии- Код: c# 1.
Да, я как раз так счас и делаю. Через сеттер. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:05 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
saxixНапример, класс-контейнер "Гараж". В нем "подкласс" "Тойота", в нем свойства: кол-во, марка, и т.п. Это "грубый" пример. Это не грубый пример, а ошибка проектирования. 1) никакого подкласса нет. 2) в гараже стоят не Тойоты и Опели, а автомобили (абстрактный класс), обладающие свойством "бренд" 3) в гараже стоят отдельные автомобили, количество - не является свойством автомобиля 4) для получения всех автомобилей определённого бренда в гараже - напишите гаражу соответсвующий метод ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:12 |
|
Подскажите по рефлексии и вложенным классам
|
|||
---|---|---|---|
#18+
ИзопропилsaxixНапример, класс-контейнер "Гараж". В нем "подкласс" "Тойота", в нем свойства: кол-во, марка, и т.п. Это "грубый" пример. Это не грубый пример, а ошибка проектирования. 1) никакого подкласса нет. 2) в гараже стоят не Тойоты и Опели, а автомобили (абстрактный класс), обладающие свойством "бренд" 3) в гараже стоят отдельные автомобили, количество - не является свойством автомобиля 4) для получения всех автомобилей определённого бренда в гараже - напишите гаражу соответсвующий метод Это был совсем грубый пример. Проектировка не моя, просто кое-что допилил. Спасибо всем, сделал через сеттер. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 12:14 |
|
|
start [/forum/topic.php?fid=20&msg=38962484&tid=1401538]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 130ms |
0 / 0 |