インターフェイス プロパティを使用した JSON.NET デシリアライズ: 実践ガイド
インターフェイス プロパティを含む JSON オブジェクトの逆シリアル化は、.NET 開発においてしばしば課題となります。 よく発生するエラーは、インターフェイスを直接インスタンス化できないことです。このチュートリアルでは、JSON 処理に広く使用されているライブラリである JSON.NET を使用して、この問題に対処します。
課題:
解決策: コンストラクターインジェクション
逆シリアル化を成功させる鍵は、インターフェイス プロパティの具象クラス インスタンスを受け入れるコンストラクターを採用することにあります。 これにより、JSON.NET は逆シリアル化プロセス中に適切な具象型を識別できるようになります。 @SamualDavis が指摘したように、このアプローチは非常に効果的です。
これがわかりやすい例です:
<code class="language-csharp">public class Visit : IVisit { // Constructor for JSON.NET to instantiate concrete types public Visit(MyLocation location, Guest guest) { Location = location; Guest = guest; } public long VisitId { get; set; } public ILocation Location { get; set; } public DateTime VisitDate { get; set; } public IGuest Guest { get; set; } }</code>
具象 MyLocation
および Guest
オブジェクトを受け取るコンストラクターを定義することにより、JSON.NET は JSON データを適切な具象クラスに正しくマップできるため、インターフェイスのインスタンス化の問題が解決されます。この方法は、単体テスト用のモック オブジェクトを作成する場合にも役立ちます。この場合、具体的な実装よりもインターフェイスが優先されることがよくあります。 これにより、JSON データが使用可能な C# オブジェクトにシームレスに逆シリアル化されます。
以上がJSON.NET のインターフェイス プロパティを使用して JSON を逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。