【发布时间】:2019-10-31 01:16:52
【问题描述】:
我正在尝试使用 Json.net 在我的游戏中保存内容。使用this 资源,我将游戏保存为 JSON,但现在我想将其保存为 Bson 格式,因为我不希望我的玩家能够轻松地编辑保存文件。
这里的代码有效,正在将我的游戏数据保存到 json。
File.WriteAllText(path, JsonConvert.SerializeObject(objectToSave, Formatting.Indented,
new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
}));
我在这里尝试将我的游戏数据保存为 bson 格式,但我不太清楚如何关闭 bson 格式的 ReferenceLoopHandling。
using (var stream = new MemoryStream())
{
var serializer = new JsonSerializer();
var writer = new BsonWriter(stream);
serializer.ReferenceLoopHandling.Equals(false);
serializer.Serialize(writer, objectToSave);
File.WriteAllText(path, serializer.ToString());
}
当我运行此代码时,我收到以下错误。
JsonSerializationException: Self referencing loop detected for property 'graph' with type 'StoryGraph'. Path 'nodes[0]'.
【问题讨论】: