如何反转Newtonsoft JsonConvert PopulateObject

时间:2019-11-28 12:19:59

标签: c# json.net event-sourcing

如何区分对象的2个版本的2个Json表示形式,以便可以将输出提供给JsonConvert.PopulateObject(...)以将对象的第一个版本转换为第二个版本。例如:

public class Dog
{
  public string Name { get; set; }
  public int Age { get; set; }
}

var myDog = new Dog { Name = "Dio", Age = 1 };

var before = JsonConvert.SerializeObject(myDog); // { "Name": "Dio", "Age" : 1 }

myDog.Age++;

var after = JsonConvert.SerializeObject(myDog);   // { "Name": "Dio", "Age" : 2 }

// How do I generate this variable, so that I can use it with PopulateObject?
var ageIncrementJson = "{ \"Age\" : 2 }";

myDog = new Dog { Name = "Dio", Age = 1 };

JsonConvert.PopulateObject(ageIncrementJson, myDog);

// myDog should now have an age of 2

我尝试使用JsonDiffPatch,但是会生成一个前后文档,但Newtonsoft不接受(例如{“ Age”:[“ 1”,“ 2”]}

0 个答案:

没有答案