有沒有人知道一種方法來找出項目中未使用的視圖?與Resharper或沒有它。 任何想法,這比寫了所有的意見,並經過所有控制器和檢查手動表示讚賞:) 感謝有沒有一種自動的方式來查找MVC中未使用的視圖?
容易
8
A
回答
7
隨着ReSharper的你可以用鼠標右鍵單擊一個Razor視圖和查找用法,但你必須手動完成,重複所有視圖(除非你可以掛接到ReSharper的API和自動化它)。
,享有當然,問題是,他們是後期綁定基於視圖引擎定義的慣例,在默認RazorViewEngine
它會在~/Views/{Controller}/{Action}
和~/Views/Shared/{Action}
相應的視圖的情況。因此很難在設計或編譯時告訴哪些視圖,部分和模板從不使用。
您可能會從相反的角度接受它:查找正在使用哪些視圖。然後將該列表與項目中的所有視圖進行比較,評估結果(手動並使用ReSharper查找用法),並確認在最終刪除它們之前確實沒有使用它們。
要找到正在使用的視圖,您可以自定義RazorViewEngine以便每次加載視圖時使用CreateView
和FindPartialView
(例如,
public class LoggingRazorViewEngine : RazorViewEngine
{
protected override IView CreateView(
ControllerContext controllerContext,
string viewPath,
string masterPath)
{
LogManager.GetLogger("").Debug(viewPath);
return base.CreateView(controllerContext, viewPath, masterPath);
}
}
中的global.asax.cs配置它
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new LoggingRazorViewEngine());
然後將解壓後的記錄獨特的視角路徑列表進行比較的項目的看法。涉及的工作量很大,但如果您有大量未使用的視圖混淆項目,可能會值得。
-1
你可以重命名的可疑視圖之一,並編譯...如果某些控制器使用它,你將得到錯誤:)
不知道任何「內置」功能來查找未使用的視圖。
相關問題
- 1. 有沒有另一種方式來啓動Android的振動?
- 2. 有沒有一種方便的方式來查找使用STL的容器中的最大元素?
- 3. 有沒有一種方法來調整iphone中的模式視圖屏幕
- 4. 有沒有一種方法來表示hibernate的數據視圖?
- 5. 有沒有另一種方式來顯示來自url的圖像?
- 6. 有沒有一種方法來使用自動完成沒有JQuery UI
- 7. 有沒有一種方法可以在使用ReSharper的.NET項目中查找所有未使用的代碼?
- 8. 有沒有一種很好的方式來可視化大量子圖(> 500)?
- 9. 有沒有一種有效的方法來查找進程的CPU優先級?
- 10. MVC - 有沒有一種很好的方法來捆綁各自的javascript控件?
- 11. 有沒有一種方法可以僅用CSS來自動縮放圖像?
- 12. 有沒有一種可靠的方式來啓動Android的啓動活動?
- 13. 有沒有一種通用的方式來進行此轉換?
- 14. 有沒有一種很好的方式來檢查Android應用程序的API?
- 15. 有沒有一種安全的方式來查找通用應用程序中的像素顯示大小?
- 16. 有沒有一種方法來熱門鏈接來自Box帳戶的圖像
- 17. 有沒有一種有效的方式來使用WCF服務代理System.Threading.Tasks?
- 18. 有沒有一種編程方式來檢查.sql文件中的語法?
- 19. 有沒有一種方法來自動化遷移形式資產吞噬?
- 20. 有沒有一種有效的方法來進行「連續」自動對焦?
- 21. 是否有一種通用的方法來查找適用於視圖的樣式?
- 22. 有沒有一種可移植的方式來查找使用Python是否是絕對路徑?
- 23. 有沒有一種智能的方式來處理NSScrollView中的視圖交換/重用?
- 24. 有沒有一種方法來檢測我的前臺應用程序中的惡意視圖浮動
- 25. 有沒有一種方法來檢測頁面上的查找搜索javascript
- 26. 有沒有一種優雅的方式來重複一個動作?
- 27. 有沒有一種簡單快捷的方式來生成JavaScript?
- 28. 有沒有一種方式來設置HTML5的範圍控制?
- 29. 有沒有一種等同的方式來從XML加載GMenu?
- 30. 有沒有一種「黑客」的方式來檢查項目的知名度?
在編譯時可能出現的唯一問題是,如果您在Visual Studio之外重命名該文件,並且在CSProj中仍然存在對該文件的引用(否則它將在沒有任何匹配視圖的情況下編譯) 。如果安裝了ReSharper,它應該會顯示一個錯誤信息 - 但我必須打開控制器才能顯示錯誤。還值得注意的是,即使這不是萬無一失,如果您正在刪除的視圖在一個區域中,共享位置或應用程序根視圖目錄中存在具有匹配名稱的另一個視圖。 – pwdst