roswell, просто во-первых, не хотелось бы засорять модель данных, во-вторых, возмоjно расширение handler'ов, например, FordOfficialHandler, AudiOfficialHandler.
Для такой задачи думаю некорректно внедрять контейнер зависимостей
Про DI думал, но опять же проблема, тогда нужно свой контейнер на каждую сессию, а триггеры нужны для того, чтобы реализовать дествия у карт, которые активируются, например, в начале и конце хода, когда карта атакована, вылечена и т.д
Наверное следовало обрисовать всю картину, использую Mef, Есть контракт , где объявлены классы и интерфейсы,которыми оперирует хост и дополнение, и дополнение вообще никак не должно знать о сессии, т.к там хранятся лишь карты и реализации iaction,которые подписаны на триггер, поэтому нужно как-то организовать получение экземпляров стола и диспетчера в дополнении
По поводу запросов, чтобы узнать, что клиент послал запрос, нужно пробегаться по всем клиентам всегда, и если в GetStream что-то лежит, то соответственно реагировать, поэтому обычно сразу создается поток на одного пользователя, когда клиент находится в меню, то запросы небольшие и постоянную связь держать не нужно, а когда идёт партия, то нужно держать соединение и обновлять модели в реальном времени