2009-08-25 11 views
11

Quando si utilizza Resharper, per qualche motivo, quando chiamo un metodo di estensione, lo converte automaticamente in una chiamata di metodo statico. Questo è il cosiddetto refactoring Convert Extension Method to Plain Static.Come disattivare il refactoring automatico "Convert Extension Method to Plain Statico" nel resharper?

foo.Bar() 

diventa

MyStaticExtensions.Bar(foo); 

Ironia della sorte, poi bandiere questo come un odore di codice. Come lo spengo?

+0

C'è una correzione già? –

+0

caratteristica peggiore di ReSharper mai –

+3

appena visto questo accada oggi nella R # 9.1 cambiato myvar.Select (Mapper.Map ) ToList() a Enumerable.ToList (myvar.Select (Mapper.Map )) –

risposta

2

Ciò non accade per me (Resharper 4.5). Hai attivato la "pulizia silenziosa"? (Resharper - opzioni - Pulizia del codice).

+0

No, non lo fa apparire come non ho alcun profilo di pulizia impostati. Questo in realtà accade solo in una circostanza particolare. Vale a dire un metodo di estensione Linq To SQL definito in una classe parziale. –

+1

@Charles: ok, questo ha più senso (che è una circostanza particolare). Proverò a riprodurre ... –

+3

Qualcuno ha ancora la correzione per questo? È davvero fastidioso quando lo converte da un metodo di estensione a una chiamata al metodo statico (quando si utilizza la ripulitura automatica) e quindi suggerisco di riconvertirlo di nuovo! :) LOL –

4

Questa funzione è incorporata in IntelliSense of Resharper. Utilizzo estensioni Linq-to-sql molto, quindi ho disabilitato questa funzione: Resharper - Opzioni - IntelliSense - Abilita Radiobutton Visual Studio

1

È possibile disattivare questo comportamento deselezionando Optimize 'using' directives. È un peccato che R # abbia un comportamento così insano; ancora più stranamente solo per pochi file. Suppongo che accada solo se viene chiamato un metodo statico su Enumerable nel file corrente.

Al fine di ottenere il comportamento utilizzando l'ordinamento e la pulizia, vi consiglio l'installazione di produttività Power Tools e controllo Options -> Text Editor -> C# -> Advanced -> Organize Usings -> Place 'System' directives first when sorting usings.