|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
|
Cast interface to concrete type27.09.2017, 14:32. Показов 1714. Ответов 8
Метки нет (Все метки)
Добрый день. Имеется агрегатор событий , у которого "издатели и подписчики" реализуют интерфейс "IApplicationEvent". Понадобилось держать список таких событий в какой-нибудь коллекции ,у которой тип элементов соответственно "IApplicationEvent". При публикации события агрегатор использует тип события для его поиска в словаре подписок. Есть две реализации "EatFruit" , "ClimbToRock" интерфейса. При переборе коллекции происходит публикация этого события, но так как тип переменной будет "IApplicationEvent" , то ничего не произойдет так,как такого типа нет в подписках (есть "EatFruit" , "ClimbToRock"). Возможно ли без кучи свичей прикастовать интерфейс к конкретному типу или же нужно переписать логику агрегатора?
0
|
|
| 27.09.2017, 14:32 | |
|
Ответы с готовыми решениями:
8
Ошибка CDO:Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem' Cannot implicitly convert type 'int' to 'int*'. An explicit conversion exists (are you missing a cast?) 'type cast' из DWORD в набор бит |
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
||||||
| 27.09.2017, 15:58 | ||||||
|
Перепилывайте логику EatFruit и ClimbToRock так, чтобы вам не нужно было использовать конвретный тип, выделите общую логику и засунте в интерфейс.
0
|
||||||
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
|||||||||||||||||||||
| 27.09.2017, 16:46 [ТС] | |||||||||||||||||||||
|
lvlkoo, Вы ,наверное, не так поняли меня. Логики в этом интерфейсе вообще нет и не предполагалась. Я уж не такой нубас и знаю о том ,что схвачу runtime error.
Имеем словарь в агрегаторе.
Кликните здесь для просмотра всего текста
Получается остаются только свичи или изменение типа...(но на какой) в словаре?
0
|
|||||||||||||||||||||
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
||||||
| 27.09.2017, 17:45 [ТС] | ||||||
|
Cupko, пробовал) InvalidCastException вываливается при касте.
0
|
||||||
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
|||
| 27.09.2017, 18:20 | |||
|
Jexio, так вопрос уже не в том что там не тот ключ?
Что в дебагере? в messageType вы правильный тип получили? ISubscription<TMessage> реализует IEnumerable<TMessage>?
0
|
|||
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
|||||||||||
| 27.09.2017, 18:42 [ТС] | |||||||||||
|
lvlkoo, Дело в том ,что typeof и GetType работают по-разному. typeof - получает имя типа на этапе компиляции. GetType - тип экземпляра. Соответственно
Вот сведения об ошибке. Не удалось привести тип объекта "ProjectZoo.Backend.EvtJunction.Aggregat or.Subscription`1[ProjectZoo.Form1+ClimbToRockNow]" к типу "ProjectZoo.Backend.EvtJunction.Aggregat or.ISubscription`1[ProjectZoo.Backend.EvtJunction.Aggregato r.IApplicationEvent]".
lvlkoo, При использование typeof(TMessage) каставалось без ошибок.. может я чего-то не понимаю..
0
|
|||||||||||
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
||||||||||||||||
| 27.09.2017, 19:01 | ||||||||||||||||
Покажите пример заполнения словаря, и что за Subscription?
0
|
||||||||||||||||
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
||||||||||||||||
| 27.09.2017, 19:13 [ТС] | ||||||||||||||||
|
lvlkoo, Вот реализация ISubscription
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
0
|
||||||||||||||||
| 27.09.2017, 19:13 | |
|
Помогаю со студенческими работами здесь
9
Templates. (concrete inheritance). question to destructor implementation lexical cast Dynamic Cast C++ Unchecked cast Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|