我试图将一个对象的属性设置为与另一个对象的属性相同。这里的代码到目前为止:
private T SetObjectAttributes<T> (dynamic fromO, T toO)
{
foreach (var prop in fromO.GetType().GetProperties())
{
toO[prop] = fromO[prop];
}
return toO;
}
此处的语法不正确:
toDbObject[prop] = fromObject[prop];
基本上,我正在尝试设置属性,但直到运行时才知道属性名称。所以我的问题是如何在运行时分配属性的值。
答案 0 :(得分:0)
您必须分别使用属性的PropertyInfo实例的GetValue( object sourceObject)
方法SetValue( object target, object value )
。
答案 1 :(得分:0)
您想使用PropertyInfo.SetValue来实际设置值。我也希望你能缓存那些PropertyInfo实例 - 因为否则它会非常慢。
您还应该查看ExpandoObject或其他一些选项。
你到底想要做什么?也许有一种更好的方式。