Question

Est-il possible de faire le jet de bibliothèque ServiceStack.Text lors de la tentative de désérialisation de JSON invalide. Par défaut, il semble que JSON invalide soit simplement ignorée, de sorte que l'objet résultat contient des valeurs nulles.

Quand j'essaie de désérialiser ce JSON (un "est manquant après MongoconnectionString)

{
"MongoDb": {
"MongoConnectionString:"mongodb://localhost:27017/x",
"MongoDatabase":"x",    
"MongoSafeModeEnabled":true, 
"MongoSafeModeFSync":true,
"MongoSafeModeWriteReplicationCount":
"MongoSafeModeWriteTimeout":"00:00:00"
},

En faisant cela: jsonSerializer.deserializeFromString (JSON); où

public class Configuration {
    public class MongoDbSettings
    {
        public string MongoConnectionString {get;set;}
        public string MongoDatabase {get;set;}
        public bool MongoSafeModeEnabled {get;set;}
        public bool MongoSafeModeFSync {get;set;}
        public int MongoSafeModeWriteReplicationCount {get;set;}
        public TimeSpan MongoSafeModeWriteTimeout {get;set;}
    }
}

J'obtiens un objet de configuration où MongoDBSettings est nul. Je préférerais obtenir une exécution dans ce cas. Est-ce possible?

Était-ce utile?

La solution

Pour le moment, les sérialiseurs ServiceStack sont optimisés pour la résilience, c'est-à-dire désérialiser autant que possible sans erreur.

Je recommanderais d'ajouter une partie de votre propre vérification de validation après la sérialisation pour déterminer quels champs n'étaient pas correctement désérialisés.

Vous pouvez également soumettre une demande de traction à la Servicestack.Text Projet qui prend en charge un drapeau opt-in (c'est-à-dire sur JSConfig) pour modifier le comportement pour lancer des exceptions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top