0

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

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

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 服务相关的东西,并且它应该能够选择更多的类。

4

1 回答 1

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

更新:这是你真正想做的。使用反射设置对象属性

于 2013-06-25T20:32:23.640 回答