0

私は次のことを達成しようとしています:

たとえば、 という名前classの3 つのカスタム クラスがtestあり、次のunknownようにします。

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 に答える