0

我正在尝试将一个对象的属性设置为与另一个对象的属性相同。到目前为止的代码:

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];

基本上,我正在尝试设置一个属性,但直到运行时才知道属性名称。所以我的问题是如何在运行时分配属性的值。

4

2 回答 2

0

您必须GetValue( object sourceObject)分别使用SetValue( object target, object value )属性的 PropertyInfo 实例的方法。

于 2012-09-05T14:22:09.770 回答
0

您想使用PropertyInfo.SetValue来实际设置值。另外,我希望您正在缓存那些 PropertyInfo 实例 - 因为否则它会非常慢。

您还应该查看ExpandoObject或其他一些选项。

你到底想做什么?也许有一个更好的方法。

于 2012-09-05T14:23:39.480 回答