我有两个同一类的对象,我想更新p2的字段在脏列表中。到目前为止,我设法编写下面的代码,但努力获得p1属性的值。我应该通过什么对象作为GetValue
方法的参数。如何动态迭代两个对象的属性
Person p1 = new Person();
p1.FirstName = "Test";
Person p2 = new Person();
var allDirtyFields = p1.GetAllDirtyFields();
foreach (var dirtyField in allDirtyFields)
{
p2.GetType()
.GetProperty(dirtyField)
.SetValue(p1.GetType().GetProperty(dirtyField).GetValue());
}
_context.UpdateObject(p2);
_context.SaveChanges();
在此先感谢。
谢谢,请你举个例子,我可以如何为每个变量存储PropertyInfo – Scorpion
其实,它已经在我的代码中了,不是吗? ''prop'局部变量而不是'p2.GetType().setValue()'和'p1.GetType()。GetValue()'保存一个'GetType()'调用,这是非常昂贵的。 – MarcinJuraszek