You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5 KiB

  1. using System;
  2. namespace Newtonsoft.Json.Linq
  3. {
  4. /// <summary>
  5. /// Specifies the settings used when merging JSON.
  6. /// </summary>
  7. internal class JsonMergeSettings
  8. {
  9. private MergeArrayHandling _mergeArrayHandling;
  10. private MergeNullValueHandling _mergeNullValueHandling;
  11. /// <summary>
  12. /// Gets or sets the method used when merging JSON arrays.
  13. /// </summary>
  14. /// <value>The method used when merging JSON arrays.</value>
  15. public MergeArrayHandling MergeArrayHandling
  16. {
  17. get => _mergeArrayHandling;
  18. set
  19. {
  20. if (value < MergeArrayHandling.Concat || value > MergeArrayHandling.Merge)
  21. {
  22. throw new ArgumentOutOfRangeException(nameof(value));
  23. }
  24. _mergeArrayHandling = value;
  25. }
  26. }
  27. /// <summary>
  28. /// Gets or sets how null value properties are merged.
  29. /// </summary>
  30. /// <value>How null value properties are merged.</value>
  31. public MergeNullValueHandling MergeNullValueHandling
  32. {
  33. get => _mergeNullValueHandling;
  34. set
  35. {
  36. if (value < MergeNullValueHandling.Ignore || value > MergeNullValueHandling.Merge)
  37. {
  38. throw new ArgumentOutOfRangeException(nameof(value));
  39. }
  40. _mergeNullValueHandling = value;
  41. }
  42. }
  43. }
  44. }