动态创建类的实例,每次都可以不同,并且仍然可以访问它的属性

时间:2013-06-25 20:21:50

标签: c# windows-services dynamics-crm-4

我正在努力实现以下目标:

我有3个名为classtestunknown的自定义类,如下所示:

public class class
{
  public string name { get; set; }
  public Guid ID { get; set; }
  public int interval { get; set; }
}

public class test
{
  public string name { get; set; }
  public Guid ID { get; set; }
  public int interval { get; set; }
}

public class unknown
{
  public string name { get; set; }
  public Guid ID { get; set; }
  public int interval { get; set; }
}

现在在我的程序中,我读取了一个XML文件,其中包含具有创建实例的类名称的行。

<Messages>
  <Message Name='ClassMessage' Type='class' />
  <Message Name='TestMessage' Type='test' />
  <Message Name='UnknownMessage' Type='unknown' />
</Messages>

我将循环遍历XML中的每一行,并根据XML中的给定类型,我必须创建该类的实例。我知道你可以用Activator.CreateInstance()实现这一点,唯一的问题是,我将无法访问它的属性(名称,ID,间隔)。

在上面的示例中,它只涉及3个类,尽管我正在处理与Microsoft Dynamics CRM 4.0的Web服务进行对话并且有更多类应该可以选择的内容。

1 个答案:

答案 0 :(得分:0)

object foo = Activator.CreateInstance("test");
(foo as test).name = "TestMessage";

更新:这是你真正想要做的。 Set object property using reflection