Um寻找一种将System.Reflection.PropertyInfo转换为其原始对象的方法
public static Child ConvertToChiildObject(this PropertyInfo propertyInfo)
{
var p = (Child)propertyInfo;
}
propertyInfo对象actulayy拥有这样的类
public class Child{
public string name = "S";
public string age = "44";
}
到目前为止,我已经尝试过隐式转换
有没有办法做到这一点?
最佳答案
试试这个:
public static Child ConvertToChildObject(this PropertyInfo propertyInfo, object parent)
{
var source = propertyInfo.GetValue(parent, null);
var destination = Activator.CreateInstance(propertyInfo.PropertyType);
foreach (PropertyInfo prop in destination.GetType().GetProperties().ToList())
{
var value = source.GetType().GetProperty(prop.Name).GetValue(source, null);
prop.SetValue(destination, value, null);
}
return (Child) destination;
}
在上面,我使用了额外的参数
parent
,它是Child
的基础对象。关于c# - 如何将System.Reflection.PropertyInfo对象转换为其原始对象类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34670236/