c# – 如何将System.Reflection.PropertyInfo对象转换为其原始对象类型

嗯正在寻找一种方法将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对象转换为其原始对象类型 - 代码日志