Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.11.2015, 02:43
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
Здравствуйте! Есть следующие типы: Код: c# 1. 2. 3. 4. ModelIds - это enum Вопрос такой: System.Type type = function(x), где function(x) - это функция поиска типа по переданному значению x, где х - одно из значений перечисления ModelIds. Предполагается следующее использование: Код: c# 1. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 02:47
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
ДА! и искомый тип должен реализовывать интерфейс IModel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 07:18
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
ughunter, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Регистрация типов (на примере Autofac): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. усё. т.е. не надо морочиться с резолвом типа, ты можешь получать сразу инстанс нужного типа и регистрировать как именно этот инстанс должен быть создан (любой, сколь угодно сложный алгоритм). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 08:33
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
hVostt, Да инстанс конечно получили. Но ведь как показано тут Repository.FindAsync<type>(id) - нужен не инстанс а сущьность. Функция Repository.IncrementView принимает сущность EF и далее с ней работает. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 09:40
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
сейчас реализовано вот так (не очень хорошо) - нет универсальности. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. т.е. нужно избавитьс от свича ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 10:18
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
ughunterт.е. нужно избавитьс от свича Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. тебе нужно реализовать кастомный атрибут ModelTypeAttribute, в который можно передать тип. затем, имея на руках значение ModelIds, можно через рефлекшен получить вышеуказанный атрибут и извлечь тип. усё. никаких кейсов, никаких словарей и регистраций. типы пробиваешь прямо атрибутами вместе с енумами.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 13:57
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
hVostt, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. -- злится (( что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.11.2015, 20:18
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
ughunter Код: c# 1. Так нельзя передавать тип. В угловых скобках можно передавать только известный на этапе компиляции тип, а в рантайме нельзя. Тут либо надо через рефлекшен сконструировать метод FindAsync параметризированный типом: Код: c# 1. 2. 3. 4. , либо использовать другой метод репозитория, который принимает одним из параметров тип: Repository.FindAsync(type, id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.11.2015, 13:25
|
|||
|---|---|---|---|
Как получить тип? |
|||
|
#18+
hVostt, спасибо огромное - ты просто гений! в конце дополню - если кто наткнется на топик )) Код: c# 1. 2. 3. 4. 5. 6. в IncrementView проверка на null - и все взлетело ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&tablet=1&tid=1356138]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 386ms |

| 0 / 0 |
