Приведенное ниже сообщение variable
будет иметь тип времени компиляции object
и время выполнения тип TMessage
. Для работы привязки обобщенного типа необходимо, чтобы тип мог быть оценен во время компиляции.
var message = JsonConvert.DeserializeObject(serializeObject, command.GetType());
Вам потребуется либо десериализовать для более точного c generi c типа:
var message = JsonConvert.DeserializeObject<TestCommand>(serializeObject);
, либо проверить тип во время выполнения, например:
if(message is TestCommand)
...