1

ここで提案されている方法を使用して、JSON.NET で生成された json 文字列を BsonDocument に変換する際にいくつか問題があります:文字列を MongoDB BsonDocument に変換します。mongodb に対して LogMessages を挿入する MongoDbLog4net アペンダーを構築しています。これらのメッセージには例外が含まれる場合があり、場合によっては、例外オブジェクトがポイント「.」を含む json 文字列にシリアル化されます。一部のキーでは、BsonSerializer.Desrialize メソッドが文句を言います。JsonConvert に無効な文字を入れたり置き換えたりしないように指示する簡単で効率的な方法はありますか?

    protected override void Append(LoggingEvent loggingEvent)
    {
        // the log message here is used to filter and collect the
        // fields from loggingEvent we are interested in
        var logMessage = new LogMessage(loggingEvent);

        // since mongodb does not serialize exceptions very well we
        // will use JSON.NET to serialize the LogMessage instance
        // and build the BSON document from it
        string jsonLogMessage = JsonConvert.SerializeObject(logMessage);

        var bsonLogMessage = BsonSerializer.Deserialize<BsonDocument>(jsonLogMessage);

        this.logCollection.Insert(bsonLogMessage);
    }
4

1 に答える 1