3

给定以下课程:

public class Entity
{
    public Guid UniqueId
    {
        get;
        set;
    }
}

以下测试失败:

    [Test]
    public void GuidTest()
    {
        var entity = new Entity { UniqueId = Guid.NewGuid() };
        var entityJson = JsonConvert.SerializeObject(entity);
        dynamic reconstitutedEntity = JsonConvert.DeserializeObject<ExpandoObject>(entityJson);
        Assert.That(reconstitutedEntity.UniqueId, Is.EqualTo(entity.UniqueId));
    }

出现错误:

预期:35ac3081-07cb-41dd-bf40-22e2ff47863c 但是是:“35ac3081-07cb-41dd-bf40-22e2ff47863c”

这是 Json.Net 中的错误还是预期的行为?如何使用 ExpandoObject 让测试通过?

如果我用实体替换 ExpandoObject,它工作得很好。我必须编写自定义 JsonConverter 吗?我尝试了这个,但由于某种原因,尽管 CanConvert 和 WriteJson (成功),但从未调用过 ReadJson。

4

0 回答 0