我做了一个简单的JsonConverter
,因为我有一个页面发布了可以是通用类型的JSON数组。
使用自定义ReadJson
类中的重写的JsonConverter
方法,可以将JSON数据发布并将其转换为类型化的对象。
我还需要再次从数据库中读取数据,并且这样做:
public Element GetElementById(ObjectId id)
{
return Db.GetCollection<Element>("Elements").Find(x => x.Id == id).FirstOrDefaultAsync().Result;
}
上面的方法由
WebApi
方法调用:[HttpGet]
public Element GetElement()
{
var element = _elementService.GetElementById(new ObjectId("123e4567b4775f1c48bdabcd"));
return element;
}
从那里,它从数据库返回正确的对象。但是在
return element
之后,在我的自定义WriteJson
类中调用了JsonConverter
json覆盖方法。该方法如下所示:public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
我不需要在
WriteJson
方法中做任何特殊的事情。因为从数据库返回的对象是好的。我只想让WebApi
将该对象转换为JSON,一切都应该很好。那么当我不需要做任何特别的事情时该如何实现
WriteJson
方法呢? 最佳答案
覆盖CanWrite
并返回false:
public override bool CanWrite { get { return false; } }