超まとめ
オブジェクトfromのパブリックプロパティ値を、オブジェクトtoの同名プロパティにコピーするコードです。
データオブジェクト間のデータコピーとかで便利、かも。
public void copyProp(Object from, Object to)
{
var fromPropInfos = from.GetType().GetProperties();
var toPropInfos = to.GetType().GetProperties();
foreach (var toPropInfo in toPropInfos)
{
var fromPropInfo = fromPropInfos
.Where((prop) =>
prop.Name == toPropInfo.Name
&&
prop.PropertyType == toPropInfo.PropertyType)
.SingleOrDefault();
if (fromPropInfo != null)
{
var fromValue = fromPropInfo.GetValue(from, null);
toPropInfo.SetValue(to, fromValue, null);
}
}
}