Функциональность C # 4.0 dynamic
будет самым простым способом сделать это.В очень реальном смысле, dynamic
является «просто оберткой» вокруг Reflection.Это очень хорошая оболочка, однако, это, вероятно, ваш лучший вариант.
Другие способы, примерно в возрастающем уровне сложности:
- Использование третьейОтражение партийной библиотеки.Не уверен, что сейчас там.
- Написание собственного кода Reflection.
- Используйте CodeDOM для создания кода, который вызывает метод, который вы хотите вызвать.
- Emit IL, которыйвыполняет почти то же самое, что и код, сгенерированный CodeDOM.
- Создание исходного кода C #, который затем компилируется в сборку, которую можно вызвать, что, в свою очередь, вызывает нужный метод.
Последние три не для слабонервных.Лучше всего использовать dynamic
или написать собственный код Reflection.Если бы у меня было dynamic
три года назад, когда я писал код для чего-то подобного, я бы использовал его.