Я пытаюсь настроить сериализацию документов в моем приложении.Проблема в том, что у сериализующего объекта есть словарь с пользовательскими данными, и иногда ключи в словаре выглядят как «Test.0» или «Test_0».
Если в словаре есть ключ «Test_0» - словарь будет сериализован как BsonDocument.Если в словаре есть ключ «Test.0», то, как я понимаю, результатом будет BsonArray.
Ожидаемое поведение?
Я пытался найти какую-то документацию - ничего не найдено.
Несколько тестовых примеров иллюстрируют проблему (добавлен Newtonsoft.Json просто для сравнения поведения)
[TestFixture]
public class BsonDocumentWrapperTests
{
[Test]
public void Test_WithoutDot()
{
var value = new Dictionary<string, object>();
value.Add("test0", "test0");
var result = BsonDocumentWrapper.Create(value);
Assert.AreEqual("{ \"test0\" : \"test0\" }", result.ToJson());
}
[Test]
public void Test_WithDot()
{
var value = new Dictionary<string, object>();
value.Add("test.0", "test0");
var result = BsonDocumentWrapper.Create(value);
Assert.AreEqual("{ \"test.0\" : \"test0\" }", result.ToJson());
}
[Test]
public void Test_WithDot_JsonNet()
{
var value = new Dictionary<string, object>();
value.Add("test.0", "test0");
var result = JsonConvert.SerializeObject(value);
Assert.AreEqual("{\"test.0\":\"test0\"}", result);
}
}