Генерики не дают нам спокойно жить. Нужно уметь обращаться с классами типа System.Collections.Generic.List<T> - вызывать функции, получать\изменять свойства. А также вызывать generic-функции классов типа System.Linq.Enumerable.
Без рефлексии не обойтись.
Вызов обычной функции. Например, list.Add( item).
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чей метод хотим вызвать |
| Str | Название функции |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
Вызов generic-функции.
Например, Convert.DeserializeObject<List<String>>( json).
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чей метод хотим вызвать |
| Str | Название функции |
| Array | Массив типов генериков (обычно один-два типа) |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
Например, System.Linq.Enumerable::Average( list)
Входные параметры :
| Тип | Описание |
|---|---|
| Str | Название статического класса |
| Str | Название функции |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
| Тип | Описание |
|---|---|
| System.Type | Тип статического класса |
| Str | Название функции |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
Например, System.Linq.Enumerable::Except<String>( list1, list2)
Входные параметры :
| Тип | Описание |
|---|---|
| Str | Название статического класса |
| Str | Название функции |
| Array | Массив типов генериков (обычно один-два типа) |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
| Тип | Описание |
|---|---|
| System.Type | Тип статического класса |
| Str | Название функции |
| Array | Массив типов генериков (обычно один-два типа) |
| Array | Массив параметров |
| Boolean | Искать ли функцию среди переопределений |
Например, dictionary.Count.
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чьё свойство хотим получить |
| Str | Название свойства |
Например, dictionary.Item[TKey].
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чьё свойство хотим получить |
| Str | Название свойства |
| Array | Массив типов параметров (обычно один-два типа) |
Например, List.Capacity = value.
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чьё свойство хотим изменить |
| Str | Название свойства |
| System.Object | Значение свойства |
Например, dictionary.Item[TKey] = TValue.
Входные параметры :
| Тип | Описание |
|---|---|
| System.Object | Объект, чьё свойство хотим изменить |
| Str | Название свойства |
| Array | Массив типов параметров (обычно один-два типа) |
| System.Object | Значение свойства |