Динамическое ключевое слово C # 4.0 - PullRequest
2 голосов
/ 25 ноября 2010

У меня есть свойство, объявленное как динамический тип

 public dynamic Data {get;set;}

, позже в каком-то методе тип данных становится System.Collections.Generic.List, поэтому если использовать Data.AsQueryable (), я получаю "System.Collections.Generic.List <Entity1 не содержит определения ошибки «AsQueryable».

Результат должен быть преобразован в Iqueryble, и я использую методы, определенные в Dynamic.Linq.

Как мне поступить?

1 Ответ

6 голосов
/ 25 ноября 2010

В настоящее время dynamic плохо работает с методами расширения.

7.6.5.2 Вызовы метода расширения

... если нормальная обработка вызов находит неприменимым методы, попытка обработки конструкция как метод расширения призывание. Если expr или любой из аргументов имеет динамический тип компиляции, методы расширения не будут применяться

Как упоминается в этого вопроса , статический контекст (применимые using директивы) должен быть доступен в run-time для каждого динамического вызова, чтобы выяснить, какие Могут применяться методы расширения, которые в настоящее время не реализованы.

Вы пытались вместо этого вызывать метод расширения как «обычный» статический метод? Например. (пожалуйста, измените, если вы намеревались вызвать другой метод): System.Linq.Queryable.AsQueryable(Data)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...