У меня есть разные индивидуальные методы, которые все должны выполнять одни и те же функции, прежде чем продолжать свою собственную реализацию. Теперь я мог реализовать эти функции в каждом методе, но мне было интересно, есть ли способ использовать attributes
для этого? В качестве очень простого примера все сетевые вызовы должны проверять сетевое соединение.
public void GetPage(string url)
{
if(IsNetworkConnected())
...
else
...
}
Это сработает, но мне нужно будет вызвать метод IsNetworkConnected
для каждого метода, который использует сеть и обрабатывает ее по отдельности. Вместо этого я хотел бы сделать это
[NetworkCall]
public void GetPage(string url)
{
...
}
Если сеть недоступна, вместо нее вызывается метод ошибки, а GetPage
игнорируется, в противном случае вызывается GetPage
.
Это очень похоже на Ориентированное на Аспект программирование, но я не хочу реализовывать целую структуру для нескольких вызовов. Это скорее учебное упражнение, чем реализация, поэтому мне было любопытно, как лучше всего это сделать.