Có ai biết cách tìm ra các lượt xem không sử dụng trong dự án không? với Resharper hoặc không có nó. bất kỳ ý tưởng nào dễ hơn viết xuống tất cả các chế độ xem và xem qua tất cả các bộ điều khiển và kiểm tra theo cách thủ công được đánh giá cao :) Cảm ơnCó cách nào tự động để tìm lượt xem không sử dụng trong MVC không?
Trả lời
Với ReSharper bạn có thể nhấp chuột phải vào chế độ xem Dao cạo và Tìm tập quán, nhưng bạn phải thực hiện thủ công và lặp lại cho tất cả chế độ xem (trừ khi bạn có thể móc vào API của ReSharper và tự động hóa).
Vấn đề với chế độ xem tất nhiên là chúng bị ràng buộc muộn dựa trên quy ước được xác định trong công cụ xem, trong trường hợp mặc định RazorViewEngine
, hãy tìm một chế độ xem tương ứng trong ~/Views/{Controller}/{Action}
và ~/Views/Shared/{Action}
. Vì vậy, thật khó để nói tại thiết kế hoặc biên dịch thời gian mà quan điểm, partials và các mẫu không bao giờ được sử dụng.
Bạn có thể phê duyệt nó từ góc đối diện: tìm xem chế độ xem nào đang được sử dụng. Sau đó, diff danh sách này đối với tất cả các khung nhìn trong dự án, đánh giá kết quả (bằng tay và với ReSharper Find Usages) và xác nhận chúng thực sự không được sử dụng trước khi loại bỏ chúng.
Để tìm các chế độ xem đang được sử dụng, bạn có thể tùy chỉnh RazorViewEngine để ghi lại mỗi lần tải chế độ xem với CreateView
và FindPartialView
, ví dụ:
public class LoggingRazorViewEngine : RazorViewEngine
{
protected override IView CreateView(
ControllerContext controllerContext,
string viewPath,
string masterPath)
{
LogManager.GetLogger("").Debug(viewPath);
return base.CreateView(controllerContext, viewPath, masterPath);
}
}
Configure nó trong global.asax.cs
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new LoggingRazorViewEngine());
Sau đó trích xuất một danh sách đường dẫn nhìn độc đáo đăng nhập để so sánh với quan điểm của dự án của bạn. Bit của nỗ lực tham gia, nhưng có thể có giá trị nếu bạn đã có rất nhiều quan điểm không sử dụng làm lộn xộn dự án.
Bạn có thể đổi tên một số chế độ xem đáng ngờ ... sẽ nhận được lỗi :)
Không biết về bất kỳ tính năng "được tích hợp sẵn" nào để tìm các lượt xem không sử dụng.
Vấn đề duy nhất có khả năng xảy ra ở thời gian biên dịch là nếu bạn đổi tên nó bên ngoài Visual Studio và vẫn có tham chiếu đến tệp theo tên trước đó trong CSProj - nếu không nó sẽ biên dịch mà không có bất kỳ lượt xem phù hợp nào . ReSharper sẽ hiển thị lỗi nếu bạn đã cài đặt - nhưng tôi phải mở bộ điều khiển để hiển thị lỗi. Nó cũng đáng chú ý rằng ngay cả điều này là không dễ dàng nếu có một cái nhìn với tên phù hợp trong vị trí chia sẻ hoặc trong thư mục gốc xem ứng dụng nếu xem bạn đang xóa là trong một khu vực. – pwdst