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를 Entity로 대체하면 올바르게 작동합니다. 사용자 정의 JsonConverter를 작성해야합니까? CanRevert와 WriteJson이 (성공적으로)되었지만 ReadJson이 호출되지 않았습니다.
답장을 보내 주셔서 감사합니다. 그것은 단언 실패의 "but but"부분에 분명하게 명시되어 있습니다. –