Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 133
.NET 2.x

Рефлексия и объявление типа

19.11.2013, 00:23. Показов 2729. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс который содержит пользовательский тип:
C#
1
2
3
4
5
6
class <MyType> MyClass
{
...
Type objectType  = typeof(MyType);
...
}
Дальше, уже в другом классе, получаем через рефлекcию доступ к полям MyClass. И тут вопрос: можно ли объявить тут переменную типа MyType?
Ну чтоб MyType x = что-то.GetValue();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2013, 00:23
Ответы с готовыми решениями:

Объявление переменной типа массив
Как объявить переменную типа массив? Пример из делфы: mas:Array of Integer; ... b:mas;

Объявление обобщённого типа (Generic) для стандартных целочисленных типов
Здравствуйте. Есть класс для вычисления факториала: public class Factorial { long _digit; public...

Рефлексия
Всем привет, нужна помощь по рефлексии. 1. Нужно вызвать класс public class FallDamage : IDLocalCharacter 2. Нужно вызвать из класса...

24
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.11.2013, 17:09
Студворк — интернет-сервис помощи студентам
navab, а стандартный атрибут [XmlType] не катит?
0
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 133
20.11.2013, 16:07  [ТС]
Psilon, катит конечно, я просто так гланды через ж##пу ищу второй день!
часть объектов реализует IXmlSerializable и все должно делаться через read\writeXml.

Grishaco, проблема в том, что IEnumerable<TEntity> Deserialize<TEntity>() мы не сможем написать.
Часть объектов реализует IXmlSerializable , часnь ICloneable, часть сторонние интерфейсы. Есть собственно базовае объекты, есть их наследники и есть списки как первых, так и вторых. И все это уже спроектировано, нельзя залезть и прикрутить свой интерфейс.

Сделал как и хотел, через рефлексию и обобщенные параметры десериализатора. Нулевая ссылка была потому, что помимо вызова конструктора, необходимо вызвать еще один метод, подготавливающий объект к работе (и не спрашивайте, почему он не вызывается в конструкторе))))

Короче, если кому надо - код приведу.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.11.2013, 21:41
Цитата Сообщение от navab Посмотреть сообщение
(и не спрашивайте, почему он не вызывается в конструкторе))))
Virtual member call in a constructor
When an object written in C# is constructed, what happens is that the initializers run in order from the most derived class to the base class, and then constructors run in order from the base class to the most derived class (see Eric Lippert's blog for details as to why this is).

Also in .NET objects do not change type as they are constructed, but start out as the most derived type, with the method table being for the most derived type. This means that virtual method calls always run on the most derived type.

When you combine these two facts you are left with the problem that if you make a virtual method call in a constructor, and it is not the most derived type in its inheritance hierarchy, that it will be called on a class whose constructor has not been run, and therefore may not be in a suitable state to have that method called.

This problem is, of course, mitigated if you mark your class as sealed to ensure that it is the most derived type in the inheritance hierarchy - in which case it is perfectly safe to call the virtual method.
0
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 133
20.11.2013, 22:29  [ТС]
lда не вызываются там никакие виртуальные методы к конструкторе. просто по доке к классу для создания объекта:
-конструктор типа new()
-дополнительный метод для инициализации данных.
код сгенеренный, видимо какие-то тонкости.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.11.2013, 23:06
navab, все методы, реализующие интерфейсы - виртуальные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2013, 23:06

Домены, Рефлексия
В данный момент работаю над приложением-контейнером для плагинов. Заинтересовала возможность загрузки и последующей выгрузки из памяти...

Рефлексия и наследование
Всем здрасьте. Может кто-нибудь знает, а можно-ли при помощи рефлексии создать дочерний класс от имеющегося по ходу работы программы, если...

Рефлексия. Сравнение сборок
Я просто не вьеду, что не так-то.... есть проект с интерфейсом и методом для поиска этого интерфейса в каталоге есть другой проект,...

Наследование,переопределение методов[рефлексия]
Раньше я практически не сталкивался с рефлексией, но теперь появилась острая проблема .Загружаю сборку с помощью Assembly.LoadFrom и мне...

[Рефлексия]. Узнать описание метода
Имеется некоторый метод, необходимо получить его описание. Возьмём для примера метод Math.Sin, intelliSenc его описывает как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru