ホームページ >バックエンド開発 >C++ >Json.Net のデフォルト動作としてプライベート セッターを設定するにはどうすればよいですか?

Json.Net のデフォルト動作としてプライベート セッターを設定するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-04 13:08:40888ブラウズ

How Can I Set Private Setters as the Default Behavior in Json.Net?

デフォルトで Json.Net にプライベート セッターを設定する

Json.Net にはプライベート セッターを明示的に処理するための属性が用意されていますが、そのような要望が存在する可能性があります。この動作をデフォルトとして設定します。ソース コードを調整することはオプションですが、これを実現する別のアプローチもあります。

[JsonProperty] 属性を使用する

読み取り専用プロパティを設定することだけが唯一の目的の場合逆シリアル化中は、[JsonProperty] 属性を適用するだけで十分です。例:

[JsonProperty]
public Guid? ClientId { get; private set; }

パラメータ付きコンストラクタ

次に示すように、プロパティに一致するパラメータを含むコンストラクタを提供することを検討してください。

public class Foo
{
    public string Bar { get; }

    public Foo(string bar)
    {
        Bar = bar;
    }
}

このアプローチにより、シリアル化と逆シリアル化:

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow

コンストラクターアプローチの利点:

  • 属性の装飾が不要になります
  • 両方の { get; に適用可能です。プライベートセット。 } と { を取得します。 } プロパティ

以上がJson.Net のデフォルト動作としてプライベート セッターを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。