如何从属性创建实例这是一个类

本文关键字:一个 从属性 创建 实例 | 更新日期: 2023-09-27 18:25:42

查看我的问题:

public class Address
{
public string Title{get;set;}
public string Description{get;set;}
}
public class Tell
{
 public string Title{get;set;}
 public string Number{get;set;}
}
 public class Person
{
 public string FirstName{get;set;}
 public string LastName{get;set;}
 public Address PAddress {get;set;}
 public Tell PTell {get;set;}
 void CreateInstanceFromProperties()
  {
    foreach(var prop in this.GetType().GetProperties())
     {
       if(prop.PropertyType.IsClass)
          {
            //Create Instance from this property
          }
     }
  }
}

如果是类,我希望从我的属性创建

如何从属性创建实例这是一个类

如果只想调用无参数构造函数,可以非常简单地使用Activator.CreateInstance。如果你想提供论据或更复杂的东西,它会变得稍微粗糙一些,但它仍然是可行的。不过,你还没有说之后你想对这个实例做什么:

foreach (var prop in this.GetType().GetProperties())
{
     if (prop.PropertyType.IsClass)
     {
         object instance = Activator.CreateInstance(prop.PropertyType);
         // Step 2: ???
         // Step 3: Profit!
     }
}

使用Assembly.CreateInstance方法:

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.createinstance.aspx