c # Отражение объекта [] проблема

2

Я пытаюсь использовать отражение для создания массива объектов типа, созданного из отражения, как показано ниже:

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

Мне нужно как-то получить тип объекта Client для создания объекта, чтобы его можно было передать.

Любая помощь будет принята с благодарностью.

Cheers, Rob

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)
  • 0
    Трудно привести к типу, который вы не знаете во время компиляции. Преобразование IEnumerable <Client> будет сложнее выполнить.
Теги:
arrays
reflection
types

1 ответ

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 во время компиляции. Если вы этого не сделаете, то, скорее всего, вы должны разместить больше информации о возможностях вызова этого метода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню