c#反射对象[]问题

时间:2009-06-12 11:23:54

标签: c# .net arrays reflection types

我正在尝试使用反射创建从反射创建的类型的对象数组,如下所示:

Client[] newArray = new Client[] {client1, client2};

我需要以某种方式获取Client对象类型来创建对象,以便它可以通过。

非常感谢任何帮助。

干杯, 罗布

object clientObject = testAssembly.CreateInstance(".Testing_Automation.Client");        
Type client = testAssembly.GetType(".Testing_Automation.Client");

// Create Client Object Array

传递给:

public Appointment(IEnumerable<Client> client, string time)

1 个答案:

答案 0 :(得分:6)

您应该使用Array.CreateInstance方法:

Array arr = Array.CreateInstance(client, lengthOfArray);
arr.SetValue(client1, 0); // Fill in the array...
arr.SetValue(client2, 1);

要从数组中获取IEnumerable<Client>,如果您在编译时知道(IEnumerable<Client>)arr类型,则可以使用Client。如果不这样做,可能会发布有关该方法调用的可能性的更多信息。