Files
CsharpHelperMethods/Extensions.cs
2022-01-30 14:50:46 -06:00

21 lines
858 B
C#

using System;
using System.Reflection;
public static t Parse<t>(this object obj) {
var r = typeof(t).GetConstructor(new System.Type[] { }).Invoke(new object[] { });
PropertyInfo inf = null;
try {
foreach (PropertyInfo i in r.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) {
inf = i;
try {
PropertyInfo inf2 = obj.GetType().GetProperty(inf.Name);
if (inf2 != null) {
inf.SetValue(r, inf2.GetValue(obj));
}
} catch (Exception ex) { Log.Error(ex, $"Object.Parse.GetValue[{inf.Name}] failed"); }
}
} catch (Exception ex) {
Log.Error(ex, $"Unable to PopulateControls with Object [Type={obj.GetType().ToString()}, PropertyInfo.Name={inf.Name}]");
}
return (t)r;
}