在 Nancy 中解析 List<Class> 时出现 JsonReaderException

JsonReaderException when parsing List<Class> in Nancy

我正在用 构建一个 P2P 网络。 到目前为止一切都很好。现在我正在构建我的 fingertables 并想解析它们以供其他客户使用。但是我收到以下错误:

Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value

我的要求:

using (HttpClient client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    HttpResponseMessage response = await client.GetAsync($"http://localhost:{port}/Successor/{id}");
    var chord = await response.Content.ReadAsAsync<ChordNode>();
    return chord;
}

这只是 returns:

Get["Successor/{id}", true] = async (x, ct) =>
{
    return _chordNode;
};

我的 class ChordNode 在我添加 FingerTable 列表之前工作正常。看起来像下面这样:

public class ChordNode
{

    public NodeInfo Info { get; set; }

    public NodeInfo Successor { get; set; }
    public NodeInfo Predecessor { get; set; }
    public List<ChordNode> FingerTable { get; set; }

    ..... and other stuff thats not important.

如果我将 FingerTable 设为私有,它会再次工作,但我不会将我的 FingerTable 返回给其他客户。

在 Whosebug 上提问仍然很陌生。所以任何反馈都会很好 :)

我找到了解决办法。 在我删除所有 ASYNC 后,我收到一条更好的消息,告诉我我用错了这部分。

Get["Successor/{id}", true] = async (x, ct) =>

我在方法调用中将参数 x.id 用作 int,但它没有给我任何反馈。因此,在将其解析为 int 后,它解决了所有问题。

感谢大家的好评。