Czy istnieje sposób tworzenia błędów czasu kompilacji, jeśli wywoływana jest określona metoda?Zapobieganie kodowi .NET wywoływania określonych metod?
Jako przykład, chciałbym uniemożliwić kodowi w konkretnym projekcie wywoływanie System.Configuration.ConfigurationManager.AppSettings(). Czy istnieje sposób na oznaczenie projektu lub pliku klasy w celu zgłoszenia błędu w czasie kompilacji, jeśli ta metoda zostanie wywołana?
Nie sądzę, że tak jest, więc sądzę, że jedynym sposobem na zrobienie tego jest wygenerowanie reguły FxCop, która oznaczałaby te połączenia i robiła to w ten sposób, ale jestem otwarty na inne pomysły.
Używam .NET 3.5. Nie jestem pewien, czy mogą to zrobić umowy kodowe 4.0.
Aktualizacje
jestem specjalnie mówić o metodach ramowych, nie moje, więc nie mogę oznaczyć je jako przestarzałe.
W tym momencie nie dbam o odbicie.
Kolejnym przykładem jest System.Web.HttpUtility.HtmlEncode, który chcę znaleźć i zastąpić biblioteką AntiXss Microsoftu, ale chciałbym zintegrować jakiś proces sprawdzania na moim serwerze kompilacji, który sprawdzi także nowy kod .
Chcesz uniemożliwić wywołanie tej metody poprzez odbicie też? – Vlad
Jeśli był to własny zestaw i można go skompilować, można użyć przestarzałego atrybutu, jeśli to w ogóle pomaga. – asawyer
Dlaczego jest na początku, jeśli nie chcesz, żeby z niego korzystali? –