Wiem, że istnieje sporo statycznych narzędzi do analizy dla C# lub .Net wokół. Zobacz tę question dla dobrej listy dostępnych narzędzi. Używałem niektórych z nich w przeszłości i mają dobry sposób na wykrywanie problemów.Narzędzie do analizy statycznej do sprawdzania blokowania przed dostępem do zmiennej
Obecnie poszukuję sposobu automatycznego egzekwowania niektórych zasad blokowania, które mamy w naszych zespołach. Na przykład chciałbym wymusić następujące zasady:
„Każda metoda publiczny, który używa członek foo musi uzyskać blokadę na pasku” Albo „Każde wywołanie foobar przypadku musi być na zewnątrz zamka do bar "
Pisanie niestandardowych reguł FxCop, jeśli jest to feasible, wydaje się dość złożone. Czy jest jakiś prostszy sposób na zrobienie tego?
Jak napisać umowę, która zabrania dostępu do niektórych danych, chyba że zostanie zrobiony zamek? – svick
@svick: blokowanie nie jest konieczne oznacza, że używasz instrukcji 'lock'. Możesz użyć innego typu obiektów 'sync', aby móc sprawdzić, czy obiekt jest sygnalizowany/zablokowany/... cokolwiek. – Tigran
OK, ale nadal, jak napisać umowę kodu, która sprawdza każdy dostęp do pola? – svick