Có cách nào để tạo ra lỗi thời gian biên dịch nếu một phương pháp nhất định được gọi không?Ngăn chặn mã .NET gọi các phương thức cụ thể?
Ví dụ, những gì tôi muốn làm là ngăn chặn mã trong một dự án nhất định từ gọi System.Configuration.ConfigurationManager.AppSettings(). Có cách nào để gắn thẻ các dự án hoặc tập tin lớp để nâng cao một lỗi thời gian biên dịch NẾU phương pháp đó được gọi là? Tôi không nghĩ rằng có, vì vậy suy nghĩ của tôi là cách duy nhất để làm điều này là tạo ra một quy tắc FxCop sẽ gắn cờ các cuộc gọi này và làm theo cách đó, nhưng tôi mở cho các ý tưởng khác.
Tôi đang sử dụng .NET 3.5. Bạn không chắc chắn nếu hợp đồng mã 4.0 có thể làm điều này.
Cập nhật
Tôi đặc biệt nói về các phương pháp khung, chứ không phải của riêng tôi, vì vậy tôi không thể đánh dấu chúng là Lỗi thời.
Tại thời điểm này, tôi không quan tâm đến sự phản chiếu.
Ví dụ khác là System.Web.HttpUtility.HtmlEncode, mà tôi muốn tìm và thay thế bằng thư viện AntiXss của Microsoft, nhưng tôi muốn tích hợp một số quy trình kiểm tra trên máy chủ xây dựng của tôi cũng sẽ kiểm tra mã mới .
Bạn có muốn không cho phép gọi phương thức này thông qua phản ánh không? – Vlad
Nếu đó là hội đồng của riêng bạn và bạn có thể biên dịch lại, bạn có thể sử dụng thuộc tính Lỗi thời, nếu điều đó có ích. – asawyer
Tại sao phải bắt đầu nếu bạn không muốn họ sử dụng? –