C# 使用JSON.NET库重写WriteJson

C# 使用JSON.NET库重写WriteJson,c#,asp.net-web-api,json.net,asp.net-web-api2,C#,Asp.net Web Api,Json.net,Asp.net Web Api2,我制作了一个简单的JsonConverter,因为我有一个页面可以发布一个可以是泛型类型的JSON数组 在自定义JsonConverter类中使用重写的ReadJson方法发布JSON数据并将其转换为类型化对象,效果良好 我还需要再次从数据库中读取数据,我这样做: public Element GetElementById(ObjectId id) { return Db.GetCollection<Element>("Elements").Find(x => x.Id

我制作了一个简单的JsonConverter,因为我有一个页面可以发布一个可以是泛型类型的JSON数组

在自定义JsonConverter类中使用重写的ReadJson方法发布JSON数据并将其转换为类型化对象,效果良好

我还需要再次从数据库中读取数据,我这样做:

public Element GetElementById(ObjectId id)
{
    return Db.GetCollection<Element>("Elements").Find(x => x.Id == id).FirstOrDefaultAsync().Result;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
    throw new NotImplementedException();
}
从那里,它从数据库返回正确的对象。但是在返回元素之后,在我的自定义JsonConverter类中调用WriteJson覆盖方法。该方法如下所示:

public Element GetElementById(ObjectId id)
{
    return Db.GetCollection<Element>("Elements").Find(x => x.Id == id).FirstOrDefaultAsync().Result;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
    throw new NotImplementedException();
}
我不需要在WriteJson方法中执行任何特殊操作。因为从数据库返回的对象是好的。我只想让WebApi将该对象转换为JSON,一切都应该很好

那么,当我不需要在WriteJson方法中执行任何特殊操作时,如何实现它?

重写并返回false:

    public override bool CanWrite { get { return false; } }

@garryp不确定您想说什么,这是JSON.NET代码?^ ^-使用Mongo和Json时不使用类型化对象?还是那些台词中的什么?