Używanie atrybutów do metod połączeń
Mam różne indywidualne metody, z których wszystkie muszą wykonywać te same funkcje przed kontynuowaniem własnej implementacji. Teraz mogłem zaimplementować te funkcje w każdej metodzie, ale zastanawiałem się, czy istnieje sposób na wykorzystanieattributes
zrobić to? Jako bardzo prosty przykład wszystkie połączenia sieciowe muszą sprawdzać połączenie sieciowe.
public void GetPage(string url)
{
if(IsNetworkConnected())
...
else
...
}
To by działało, ale musiałbym zadzwonić doIsNetworkConnected
metoda dla każdej metody, która korzysta z sieci i obsługuje ją indywidualnie. Zamiast tego chciałbym to zrobić
[NetworkCall]
public void GetPage(string url)
{
...
}
Jeśli sieć jest niedostępna, zamiast tego wywoływana jest metoda błędu iGetPage
jest ignorowane, w przeciwnym razieGetPage
jest wywoływany.
Brzmi to bardzo podobnie do programowania zorientowanego na Aspect, ale nie chcę implementować całej struktury dla kilku połączeń. Jest to bardziej ćwiczenie edukacyjne niż implementacyjne, więc byłem ciekawy, jak coś takiego będzie najlepiej wdrożone.