Ce code:
var commandMessage = new CommandMessage { CorrelationId = Guid.NewGuid() };
var json = JsonConvert.SerializeObject(commandMessage);
var myCommandMessage = (CommandMessage)JsonConvert.DeserializeObject(json);
donne ce message d'erreur:
Additional information: Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type 'QueueConnectionStringTester.CommandMessage'
C'est la classe CommandMessage:
public class CommandMessage
{
public Guid CorrelationId { get; set; }
}
Qu'est-ce que j'oublie ici?
Vous devez spécifier le type lors de la désérialisation.
Non plus:
var myCommandMessage = JsonConvert.DeserializeObject<CommandMessage>(json);
Ou:
var myCommandMessage = (CommandMessage)JsonConvert.DeserializeObject(json, typeof(CommandMessage));
Vous devez donner le type. La classe JsonConvert ne sait rien de votre classe CommandMessage
public class CommandMessage
{
public Guid CorrelationId { get; set; }
}
static void Main(string[] args)
{
var commandMessage = new CommandMessage { CorrelationId = Guid.NewGuid() };
var json = JsonConvert.SerializeObject(commandMessage);
var myCommandMessage = JsonConvert.DeserializeObject<CommandMessage>(json);
}