Ведение журнала с использованием блока внедрения политик

Всем привет

Я хочу спросить, как использовать блок приложения внедрения политик для регистрации методов входа и выхода в следующих случаях:

Случай 1: в случае регистрации обработчиков событий элементов управления веб-формы, вы знаете, что класс, скажем, _Default должен быть унаследован от класса System.Web.UI.Page, поэтому мы не можем наследовать наш класс от класса MarshalByRefObject, поэтому ведение журнала не будет работать,

Случай 2: в случае, если у нас есть статический класс, и мы должны зарегистрировать методы внутри, что мы можем сделать, чтобы унаследовать этот класс от calss MarshalByRefObject, чтобы получить работу регистрации.

3 ответа

Решение

Мне кажется, что у них есть некоторые глупые требования, чтобы иметь возможность применять ведение логов... Это может быть оффтопом, но вы можете взглянуть на среду Spring.AOP, чтобы применить логи к вашим объектам без необходимости наследования от MarshalByRefObject. (В языках с множественным наследованием это раздражающее и решительное требование, я думаю).

Что касается случая 1, блок внедрения политики может действовать на объекты, для которых у вас есть интерфейс. Достаточно просто сделать это в Visual Studio с помощью действия Refactor->Extract Interface, если вы не пишете с интерфейсом уже в уме.

Что касается случая 2, ваш "статический" класс не может быть статическим классом. Он может наследоваться от MarshalByRefObject или реализовывать указанный вами интерфейс. Затем он может иметь частный конструктор и единственный экземпляр, который вы внедряете в политику. Все ваши статические методы будут просто вызывать соответствующие (внедренные в политику) методы экземпляра в экземпляре синглтона класса.

Другие вопросы по тегам