2009-02-08 13 views
21

W mojej aplikacji mam spore liczby podmiotów, które mają pola, które otrzymują swoje wartości ustawione za pomocą refleksji. (W tym przypadku NHibernate je ustawia). Chciałbym się pozbyć "x nigdy nie jest przypisany i zawsze będzie miał domyślną wartość ostrzeżenia 0", dzięki czemu łatwiej znajdę inne ostrzeżenia. Rozumiem, że możesz je otaczać w dyrektywach pragma, ale AFAIK musisz to zrobić dla każdego. Czy istnieje szeroki projekt lub rozwiązanie w szerokim zakresie?Globalnie tłumi się ostrzeżenia kompilatora C#

+0

Każdy powód, dla którego nie wystarczy umieścić ostrzeżenia #pragma wyłączyć 169 w górnej części pliku kodu źródłowego? Unieważnia pozostałą część pliku. –

+0

++ do tego, o wiele lepiej, ponieważ daje to jasno do zrozumienia, że ​​ten plik zawiera mnóstwo tych i nie absolutnie wszystko – ShuggyCoUk

+1

W moim przypadku używam NHibernate do ustawienia identyfikatorów podmiotów. Tak więc na każdym obiekcie domeny mam prywatny int _ID; Naprawdę nie chcę ustawiać dyrektyw pragma dotyczących każdej z tych obiektów, ale wolę coś globalnego. – pondermatic

Odpowiedz

33

pomocą C# poleceń opcja/nowarn http://msdn.microsoft.com/en-us/library/7f28x9z3(VS.80).aspx

Aby to zrobić w ciągu Visual Studio goto projekt Ustawienia-> Budowa -> (Błędy i ostrzeżenia) Pomija ostrzeżenia a następnie określić oddzielonych przecinkami listę ostrzeżeń, które wymagają być stłumionym.

+13

Jak wskazuje AnthonyWJones poniżej, identyfikatory ostrzeżeń kompilatora, które należy umieścić w tej oddzielnej przecinku, znajdują się w oknie Output podczas przeglądania strumienia Build.What nie jest jeszcze wymieniony w tym wątku jest taki, że występują one w postaci 'CSxxxx 'i musisz usunąć prefiks 'CS' w wymienionych kodach, aby działał. –

+0

Super. Dzięki!!! –

8

Otwórz właściwości projektu, na karcie kompilacji, wprowadź identyfikatory ostrzeżeń, które chcesz wyłączyć w polu Pomiń ostrzeżenia:.

+0

To jest to, co chcę zrobić, ale niestety ostrzeżenie ID nie jest napisane z ostrzeżeniem w okienku listy błędów VS2010.I niektóre identyfikatory ostrzegawcze są bardzo blisko, ale kody są różne, mam na myśli błąd CLS dla int i błąd CLS dla nazwy klasy są różne. Jeśli twój standard kodowania nie jest CLS, co zrobisz? –

+1

@ DavutGürbüz: Próbowałem szukać w oknie wyjściowym podczas budowania – AnthonyWJones

+0

otworzyłem szczegółową kompilację, więc trudno ją zobaczyć, ale działa, BC40028 wyłączył większość moich ostrzeżeń CLS dzięki –

1

Tag VC++ XML dla tego to < DisableSpecificWarnings /> z rozdzieloną średnikami listą liczbowych identyfikatorów. Nie wydaje się, że dokumentacja jest udokumentowana w dowolnym miejscu, ale widzę tylko FYI.

Powiązane problemy