Odpowiedz

7

Z ReSharper możesz kliknąć prawym przyciskiem myszy widok Razor i Znajdź użycie, ale musisz przejść ręcznie i powtórzyć dla wszystkich widoków (chyba że możesz podłączyć się do API ReSharper i zautomatyzować go).

Problem z widokiem oczywiście jest to, że spóźniłeś związany na podstawie konwencji określonej w silniku Widok w przypadku domyślnie RazorViewEngine szuka odpowiedniego widoku w ~/Views/{Controller}/{Action} i ~/Views/Shared/{Action}. Trudno jest więc określić w czasie projektowania lub kompilacji, które widoki, części i szablony nigdy nie są używane.

Możecie approch go od przeciwległego kąta: dowiedzieć się, jakie są używane widoki. Następnie porównuj tę listę ze wszystkimi widokami w projekcie, oceń wyniki (ręcznie i za pomocą ReSharper Find Usages) i potwierdź, że naprawdę nie są używane, zanim ostatecznie je usuniesz.

Aby znaleźć używane widoki, można dostosować maszynę RazorViewEngine do rejestrowania przy każdym załadowaniu widoku za pomocą CreateView i FindPartialView, np.

public class LoggingRazorViewEngine : RazorViewEngine 
{ 
    protected override IView CreateView(
     ControllerContext controllerContext, 
     string viewPath, 
     string masterPath) 
    { 
     LogManager.GetLogger("").Debug(viewPath); 
     return base.CreateView(controllerContext, viewPath, masterPath); 
    } 
} 

skonfigurować go w Global.asax.cs

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new LoggingRazorViewEngine()); 

Potem wyodrębnić listę zalogowanych unikalnych ścieżek widok porównać przed widokiem swojego projektu. Trochę wysiłku, ale być może warto, jeśli masz dużo nieużywanych widoków zaśmiecających projekt.

-1

Można zmienić nazwę jednego z podejrzanych poglądów i skompilować ... jeśli jakiś kontroler wykorzystuje to ty będzie się błędy :)

nie znam żadnego „wbudowany” cecha patrzeć na niewykorzystane widoki.

+0

Jedynym problemem, który może pojawić się w czasie kompilacji jest, jeśli przemianować go poza Visual Studio i nadal istnieje odniesienie do pliku przez poprzednią nazwą w CSProj - w przeciwnym razie będzie to skompilować bez jakichkolwiek widoków pasujące tylko drobne . ReSharper powinien pokazać błąd, jeśli masz go zainstalowany - ale musiałem otworzyć kontroler, aby pokazać błąd. Warto również zauważyć, że nawet to nie jest niezawodne, jeśli istnieje inny widok z pasującą nazwą w Udostępnianej lokalizacji lub w katalogu widoków głównych aplikacji, jeśli widok, który usuwasz, znajduje się w obszarze. – pwdst

Powiązane problemy