Как я могу использовать тот же набор правил, которые используются компилятором для соответствия методу в getmethod(..)
Я пишу AOP против старого устаревшего класса, который не имеет преимуществ встроенного контейнера IoC. Я использую силу динамических типов, используя производный класс DynamicObject. Когда я использую
mi = obj.Метод gettype().GetMethod(methNm, parmType);
вызовите, если типы параметров (представленные parmType, выше) не являются точно теми типами, с которыми был объявлен метод, то приведенный выше GetMthod(..) не найдет метод.
Мой вопрос к вам таков: знаете ли Вы способ, потенциально используя семантическую модель Рослина, использовать тот же набор правил, которые используются компилятором для сопоставления метода в GetMethod(..) с "лучшим выбором" метода?
Что я уже пробовал:
Я читаю через RuntimeBinder в надежде найти ключ...
Nathan Minier
Не в автоматическом режиме, но вы можете перечислять через obj.Метод gettype().GetMethods().Выберите(х => У Х.GetParameters) на карту с помощью переключателя.
Проблема в том, что это определение времени выполнения, поэтому компилятор не может сделать "лучшее предположение".
Avi Farah
Натан, спасибо тебе! Я надеюсь, что смогу использовать существующую функциональность в отличие от построения логики, которая есть в компиляторе. Когда я это выясню, я отправлю его.