4

無効なJSONを逆シリアル化しようとしたときに、ServiceStack.Textライブラリをスローさせることは可能ですか?デフォルトでは、無効なJSONは無視されているように見えるため、結果オブジェクトにはnull値が含まれます。

このjsonを逆シリアル化しようとすると(MongoConnectionStringの後に「a」がありません)

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

これを行うことによって:JsonSerializer.DeserializeFromString(json); どこ

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;}
    }
}

MongoDbSettingsがnullであるConfigurationオブジェクトを取得します。この場合、私は例外を取得したいと思います。これは可能ですか?

4

1 に答える 1

2

現時点では、ServiceStackシリアライザーは復元力のために最適化されています。つまり、エラーなしで可能な限りデシリアライズします。

どのフィールドが正しく逆シリアル化されなかったかを調べるために、シリアル化後に独自の検証チェックを追加することをお勧めします。

オプトインフラグ(つまり、JsConfig)をサポートするServiceStack.Textプロジェクトにプルリクエストを送信して、例外をスローする動作を変更することもできます。

于 2012-01-23T17:56:22.983 に答える