我知道通常使用方法AppDomain
。但是在这种情况下,我进行序列化,然后进行反序列化,但不起作用。
Newtonsoft.Json.JsonConvert.DeserializeObject
我收到以下异常:将值“57ab57ba86597bac513ce130”转换为类型MongoDB.Bson.ObjectId'时出错。路径'a',第1行,第31位。“
我知道问题是类型,但是如何序列化类型却无法反序列化呢?
测试结构:
static public void mess(test message)
{
try
{
test temp = new test(id); // The only thing I don't show is that I obtain a valid ObjectId in id
string messageSerialized = Newtonsoft.Json.JsonConvert.SerializeObject(temp);
Newtonsoft.Json.JsonConvert.DeserializeObject<test>(messageSerialized);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
答案 0 :(得分:0)
将值“此处为对象ID”转换为键入时出错 MongoDB.Bson.ObjectId”。
是的,查看错误,可以看到它正在尝试将字符串"here is an object ID"
反序列化为Bson.ObjectId
,这将永远不会成功。您应该发布序列化的JSON字符串以及BrowsersObj
的结构。
根据您的最新编辑:"57ab57ba86597bac513ce130"
不是MongoDB ObjectId而是字符串。检查您的MongoDB集合,很可能您没有将_id
存储为ObjectID
,而是将其覆盖以存储为string