Предположим, у меня есть класс, в котором я хочу иногда * (но теперь всегда) перехватывать некоторые (но не все) ) методы. Насколько я понимаю, это можно сделать либо, скажем, с помощью InterceptAround ()
в моем модуле Ninject (в коде более высокого уровня), либо с помощью атрибута, производного от InterceptAttribute в этих методах (в уровень реализации).
Мне не очень нравится первый способ сделать это, потому что он требует, чтобы потребитель знал детали, будет много классов с множеством методов. Но мне тоже не нравится второй способ, так как я не вижу, как отключить (или, скорее, не включить) перехват, поскольку атрибут слит с кодом.
Есть ли какой-нибудь известный подход к решить эту проблему?
*: на время существования приложения.