如何初始化对象属性

时间:2019-08-16 10:46:48

标签: c# lambda reflection

我创建了一个接受Type对象的函数(例如:MyEntity),并且我必须初始化MyEntity的所有属性。这是我附带的代码,但是卡住了。不知道如何初始化属性。

先谢谢您

public  void InitializeViewModel(MyEntity entity)
{

    Type objectType = entity.GetType();
    var properties = entity.GetType().GetProperties()
                     .Where(p=>p.PropertyType.IsClass
                      && !p.PropertyType.FullName.StartsWith("System."));

    foreach (PropertyInfo propertyInfo in properties)
    {
        var instance = Activator.CreateInstance(propertyInfo.PropertyType);         
    }
 }

1 个答案:

答案 0 :(得分:0)

void InitializeViewModel(MyEntity entity)
{
    Type objectType = entity.GetType();
    var properties =
    entity.GetType().GetProperties().Where(p => p.PropertyType.IsClass
               && !p.PropertyType.FullName.StartsWith("System."));

    foreach (PropertyInfo propertyInfo in properties)
    {
         var instance = Activator.CreateInstance(propertyInfo.PropertyType);
         objectType.GetProperty(propertyInfo.Name).SetValue(entity, instance);
    }
}