Разрабатываю игру наподобие HearthStone на c#. Сервер на TCPClient. На данном этапе пытаюсь организовать обработку сообщений. Между клиентом и сервером ходит закодированный в json класс Message
public class Message
{
public MessageContent Content { get; set; }
public Encoding Encoding { get; set; }
public int BufferLengthSize { get; set; }
public Type Type { get; set; }
}
MessageContent, собственно и есть содержимое, которое нужно обработать, есть различные типы сообщений, например AttackMessage
public class AttackMessage : MessageContent
{
public int AtackCartId { get; set; }
public int AttackedCartId { get; set; }
}
Сейчас идея такова, с помощью контейнера зависимостей, регистрирую именованные привязки
container.RegisterType<IController, AttackMessageController>(nameof(AttackMessage));
И в едином обработчике сообщений в зависимости, от типа содержимого, вызываю нужный контроллер
var controller = container.Resolve<IController>(response.Type.Name);
И формирую ответ
var response = controller.GetResponse(response.Content)
Оправданно ли для этого использовать контейнер зависимостей, или есть более практичное решение?