Ведение журнала с использованием блока внедрения политик
Всем привет
Я хочу спросить, как использовать блок приложения внедрения политик для регистрации методов входа и выхода в следующих случаях:
Случай 1: в случае регистрации обработчиков событий элементов управления веб-формы, вы знаете, что класс, скажем, _Default должен быть унаследован от класса System.Web.UI.Page, поэтому мы не можем наследовать наш класс от класса MarshalByRefObject, поэтому ведение журнала не будет работать,
Случай 2: в случае, если у нас есть статический класс, и мы должны зарегистрировать методы внутри, что мы можем сделать, чтобы унаследовать этот класс от calss MarshalByRefObject, чтобы получить работу регистрации.
3 ответа
Мне кажется, что у них есть некоторые глупые требования, чтобы иметь возможность применять ведение логов... Это может быть оффтопом, но вы можете взглянуть на среду Spring.AOP, чтобы применить логи к вашим объектам без необходимости наследования от MarshalByRefObject. (В языках с множественным наследованием это раздражающее и решительное требование, я думаю).
Что касается случая 1, блок внедрения политики может действовать на объекты, для которых у вас есть интерфейс. Достаточно просто сделать это в Visual Studio с помощью действия Refactor->Extract Interface, если вы не пишете с интерфейсом уже в уме.
Что касается случая 2, ваш "статический" класс не может быть статическим классом. Он может наследоваться от MarshalByRefObject или реализовывать указанный вами интерфейс. Затем он может иметь частный конструктор и единственный экземпляр, который вы внедряете в политику. Все ваши статические методы будут просто вызывать соответствующие (внедренные в политику) методы экземпляра в экземпляре синглтона класса.