Проблема в том, что то, что приходит от клиента, это не что иное, как некоторые строковые данные.SignalR должен связать это с типом в вашем обработчике.Поэтому все, что у вас осталось, это IMessage
, а не что-то вроде Text
или Image
.
. Для этого у вас нет выбора, кроме как иметь разные обработчики, по одному для каждого типа.Это единственный способ связать все данные и затем успешно взаимодействовать с этими данными.Вы не можете использовать абстрактный класс или интерфейс, если только вы не можете использовать только данные, существующие в этом классе или интерфейсе.