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を作成する必要がありますか?私はこれを試みましたが、何らかの理由でReadJsonがCanConvertとWriteJsonが(正常に)呼び出されたことはありませんでした。
返信いただきありがとうございます。アサーションの失敗の「あった」部分にはっきりと述べられています。 –