2011-01-06 9 views
8

así, tengo un repositorio definido con un método como este:problema intellisense ReSharper con métodos de extensión

IQueryable<Customer> Customers{...} 

y en otros lugares un método de extensión para filtrar los clientes, así:

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

y esto funciona bien, dejándome usar el repositorio de esta manera:

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

pero el problema es, ReShar por desordenar la finalización automática en este gran momento. Cuando escribo

var c = repo.Customers().Wi 

consigo agradable Intellisense me muestra el método WithID (...), pero cuando el cursor hacia abajo a ella y pulse el tabulador, en lugar de obtener el método WithID() como se esperaba, se remonta y el código de cambios ya escrito y la línea termina buscando su lugar como:

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

que por supuesto me deja tener que volver atrás y escribirla de nuevo, y esta vez IGNORE intelisense - lo que en mi humilde opinión no es nunca una buena cosa:)

He confirmado que es un problema ReSharper por entrando en opciones y especificando "Visual Studio" para Intellisense. ¡No quiero volver al sencillo Studio!

¿Alguien puede ayudar o sugerir una solución?

+0

No tengo ese problema con ninguno de nuestros métodos de extensión. ¿Qué versión de ReSharper estás usando? –

+0

R # 5.1 VS 2010, Windows 7. Proyecto de biblioteca de clases en el marco 4.0. Hmmm ... esto le sucede a todos nuestros desarrolladores aquí, no solo a mí. –

+0

¿Encontró una solución? Esto me sucede también en una serie de situaciones. – MatteS

Respuesta

5

Esto me estaba afectando también. Parece que es un error conocido:

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

Desactivación de ReSharper -> Opciones -> IntelliSense -> Comportamiento de ejecución -> "insertar automáticamente paréntesis después de la terminación" ayuda.

+0

Eso me quita el error, aunque no es la mejor solución al problema realmente. Parece que el error se corrigió en 6.0, pero está de vuelta en 8. Parece que lo han reparado de nuevo en 9.0, por lo que solo tiene que pagar unos cientos de dólares (nuevamente) para solucionar el problema. 9.0 parece tener problemas con los métodos de extensión, pero en lugar de cambiar la invocación, simplemente no abre los paréntesis y, en su lugar, activa la siguiente línea. ¿Qué es lo que dicen sobre los desarrolladores que escriben errores para mantenerse empleados? https://youtrack.jetbrains.com/issue/RSRP-426530 –

+0

Desactivar y volver a activar ese ajuste parece haberlo solucionado por mr –

0

Puede invocarlo como un método de extensión mediante el uso de compleción de tipo (CTRL + ALT + SPACE) y esto omitirá el error correctamente.

Este error solo ocurre para ciertos métodos de extensión, aunque no sé por qué.

Cuestiones relacionadas