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/

10-10 22:26