С помощью AOP я могу удалить код регистрации из моей бизнес-логики. Но я думаю, что он может быть использован только для регистрации простых вещей (например, вход / выход метода регистрации и значения параметров).
Однако что, если мне нужно что-то записать в моей бизнес-логике? например
public void SomeDomainMethod(string id)
{
//Get user by Id
User user = Users.Get(id);
if (user == null)
{
Log.Warn("user is not existed"); //<----------------- Log A
throw new InvalidOperationException("user is not existed");
}
//Step 1
while(true)
{
//do something
}
Log.Info("Step 1 is completed"); //<----------------- Log B
//Step 2
while(true)
{
//do something
}
Log.Info("Step 2 is completed"); //<----------------- Log C
}
Приведенный выше пример метода может быть недостаточно понятным, и здесь я хочу показать, что этот метод следует рассматривать как наименьшую единицу с точки зрения домена. Это не должно быть разделено на более мелкие части.
Можно ли переместиться выше 3-х кодов регистрации из метода? Что лучше всего подходит для такой ситуации?