json.netのデフォルトのコンストラクターは、jsonデータをオブジェクトにシームレスにシーケンスできます。ただし、クラスを回復する必要がある場合、デフォルトのコンストラクターは処理プロセスを妨げる可能性があります。この問題は、JSONデータが重量荷重コンストラクターのパラメーターと一致しているが、デフォルトのコンストラクターがある場合に発生します。
解決策:デフォルトの動作をカバーしてください
json.netがデフォルトのコンストラクターを使用しないようにするために、2つの方法があります。 1。[jsonconstructor]機能を使用してください
json.netでは、[jsonconstructor]機能を使用して、好ましい翻訳可能なコンストラクターを指定できます。この機能に必要なコンストラクターを使用することにより、デフォルトのコンストラクターが定義されている場合でも、JSON.NETにそれを使用させることができます。コンストラクターパラメーターは、JSONオブジェクト属性と一致する必要があることに注意してください(小文字を無視してください)。2。カスタムJSONConverter:
を作成します または、クラスを変更できない場合は、カスタムJSONCONVERRERを作成して処理プロセスを制御できます。コンバーターのReadJSONメソッドは、非デフォルトコンストラクター構築オブジェクトを使用し、JSONデータに従って他の属性を埋めるためにカスタマイズできます。
例:
建設的な機能を備えた次のクラスを考慮してください:
[JSonConstructor]機能方法を使用するには、以下に示すように、この機能装飾の優先コンストラクターを使用してください。一方、カスタムJSonConverrerメソッドの場合、以下に示すコンバーターを定義できます。
このコンバーターのReadJSONメソッドでは、非デフォルトコンストラクターを使用して結果オブジェクトをインスタンス化し、JSONデータに従って他の属性を入力できます。これらのテクノロジーを使用することにより、json.netのデフォルト動作をカバーし、デフォルトのコンストラクター関数がある場合でも、重い負荷コンストラクターの使用の導関数を有効にすることができます。
以上がJSONデータをデフォルトのコンストラクターなしでC#クラスに脱着するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。