Решить проблему intellisense с методами расширения - PullRequest
8 голосов
/ 06 января 2011

Итак, у меня есть хранилище, определенное с помощью метода, подобного этому:

IQueryable<Customer> Customers{...}

и в других местах метод расширения для фильтрации клиентов следующим образом:

public static IQueryable<Customer> WithID(this IQueryable<Customer> customers, int ID){...}

и это прекрасно работает, позволяя мне использовать репозиторий следующим образом:

var c = repo.Customers().WithID(5).Single();

но проблема в том, что ReSharper испортил автозаполнение в это большое время. Когда я набираю

var c = repo.Customers().Wi

Я получаю хороший Intellisense, показывающий мне метод WithID (...), но когда я перемещаюсь к нему и нажимаю TAB, вместо того, чтобы получить метод WithID (), как ожидается, он возвращается назад и изменяет уже написанный код строка выглядит так:

var c = CustomerExtensions.WithID(repo.Customers())

что, конечно, заставляет меня возвращаться и вводить его снова, и на этот раз IGNORE intellisense - что, ИМХО, НИКОГДА не является хорошей вещью:)

Я подтвердил, что это проблема ReSharper, зайдя в параметры и указав «Visual Studio» для Intellisense. Я не хочу возвращаться в простую Студию!

Может кто-нибудь помочь или предложить обходной путь?

Ответы [ 2 ]

5 голосов
/ 12 августа 2011

Это также повлияло на меня. Похоже, это известная ошибка:

http://youtrack.jetbrains.net/issue/RSRP-274746

Помогает отключение Resharper -> Параметры -> IntelliSense -> Поведение при завершении -> «Автоматически вставлять скобки после завершения».

0 голосов
/ 19 сентября 2011

Вы можете вызвать его как метод расширения, используя завершение типа (CTRL + ALT + SPACE), и это позволит правильно обойти ошибку.

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

...