调用类型的空默认构造函数

Calling empty default constructor of type

我试图在我的对象上实例化每个 属性(JobVmInput 类型)。 到目前为止,这是我的代码:

var properties = this.GetType().GetProperties();

foreach (var p in properties)
{
     var type = p.PropertyType;
     if (type.IsSubclassOf(typeof(JobVmInput)))
     {
          var constructor = type.cons.GetConstructor(**what to input here**);
          p.SetValue(p, constructor.Invoke(**what to input here**));
     }
}

但是我不知道在 GetConstructor 和 constructor.Invoke 方法中输入什么。我查看了 MSDN 文档,但我不确定他们接受什么。我只想调用空的默认构造函数。

您可以使用:

var constructor = type.GetConstructor(Type.EmptyTypes);
p.SetValue(this, constructor.Invoke());

或:

p.SetValue(this, Activator.CreateInstance(type));

请注意,我已将第一个参数替换为 this,因为 SetValue 方法需要您的 object 而不是 PropertyInfo

的实例