2
鑑於下面的類:反序列化的GUID失去類型和是一個字符串
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從未被調用過。
感謝您的答覆,但很明顯。它在斷言失敗的「但是」部分中清楚地表明瞭這一點。 – 2012-01-27 21:23:20