したがって、ジェネリック型 T の何千ものオブジェクトがあり、それらを取得したオブジェクトの配列にキャストしたいと考えています。そのため、プロパティ リスト T を取得し、各プロパティの値を配列の対応するオブジェクトに設定する必要があります。
for (int i = 0; reader.Read(); i++)
{
T tmp = (T)Activator.CreateInstance(typeof(T));
foreach (var prop in properties)
{
prop.SetValue(tmp, reader.GetValue(reader.GetOrdinal(prop.Name)), null);
}
}
リーダーは DataReader です。私が抱えている問題は、prop.SetValueが悲しいほど遅いことです (合計実行時間の 50% を消費します)。動的メソッドまたは式ツリーを使用するように言われました。式ツリーを使用してみましたが、理解したことから、設定したい値ごとに1つのツリーを生成しますが、これはあまり良くありません。したがって、動的メソッドは他のオプションです。理想的には、何度も再利用できるメソッドSetProp(object, propertyName, value)を作成する必要があります。