1.創建用於測試驗證的實體類
class Model {
public string Test1 { get; set; }
public string Test2 { get; set; }
public string Test3 { get; set; }
}
2.創建該類的兩個對象,用於后面進行比較、屬性復制
Model model = new Model();
Model model2 = new Model() {Test1 = "test" };
3.給model對象的屬性賦值,這里我們采用非常規方法,通過遍歷屬性值,來賦值
PropertyInfo[] propertys = model.GetType().GetProperties(); //獲取model的所有公共屬性
int index = 0;
foreach (PropertyInfo info in propertys) {//遍歷屬性,給對象屬性賦值
info.SetValue(model,"test" + index);
index++;
}
4.打印輸出model對象,遍歷獲取對象屬性,驗證屬性賦值是否成功
PrintValue(model,label1);
private void PrintValue(Model model, Label label) {
PropertyInfo[] propertys = model.GetType().GetProperties();
foreach (PropertyInfo info in propertys)
{
string name = info.Name;
string value = info.GetValue(model).ToString();
label.Content += name + ":" + value + "\n";
}
}
輸出結果:

5.通過比較model2與model屬性值的差異,將model屬性疊加復制給model2
PropertyInfo[] propertys = model.GetType().GetProperties();
foreach (PropertyInfo info in propertys) {
if (info.GetValue(model2) == null)
{
info.SetValue(model2, info.GetValue(model).ToString());
}
else {
info.SetValue(model2, info.GetValue(model2).ToString() + "," + info.GetValue(model).ToString());
}
}
6.打印model2,輸出結果驗證
PrintValue(model2,label2);
輸出結果:

7.將model2轉換為json字符串
string str = JsonConvert.SerializeObject(model2);
輸出結果:

