4
我正在使用MVC4 WebApi与RestSharp客户端,我努力让ObjectIds正确地序列化(或反序列化)。MVC4 WebApi序列化/反序列化MongoDB ObjectId
我有一个基本的类,像这样:
public class User
{
[BsonId]
public ObjectId Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
什么是反序列化在客户端上该对象的最佳/有道?我已经尝试过的所有Id属性的值都是ObjectId.Empty。
非常感谢。
更新:
我试过创建一个不同的ObjectIdDeserializers。下面是反序列化器以及客户端和样本json的例子,它们被发送回客户端。
public class ObjectIdDeserializer : IDeserializer
{
public string RootElement { get; set; }
public string Namespace { get; set; }
public string DateFormat { get; set; }
public T Deserialize<T>(RestSharp.IRestResponse response)
{
return BsonSerializer.Deserialize<T>(response.Content);
}
}
在RestSharp我加入以下行来调用上述解串器:
_client.AddHandler("application/json", new ObjectIdDeserializer());
和一些示例JSON看起来是这样的:
"User":
{
"Id":
{
"_timestamp":1339158960,
"_machine":7962014,
"_pid":4040,
"_increment":9499872
},
"FirstName":"Test",
"LastName":"User"
}
你能告诉我们你到目前为止试过的吗? –
@AndrewOrsich我只是增加了一些细节。感谢您的关注,如果您有任何想法,请让我知道 – zgirod