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

プロパティの PropertyInfo インスタンスのメソッドをGetValue( object sourceObject)それぞれ使用する必要があります。SetValue( object target, object value )

于 2012-09-05T14:22:09.770 に答える
0

実際に値を設定するには、PropertyInfo.SetValueを使用します。また、これらの PropertyInfo インスタンスをキャッシュしていることを願っています。そうしないと、非常に遅くなるからです。

ExpandoObjectまたはその他のオプションも確認する必要があります。

正確に何をしようとしていますか?もしかしたらもっと良い方法があるかもしれません。

于 2012-09-05T14:23:39.480 に答える