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

StackOverflow https://stackoverflow.com/questions/312428

Вопрос

Привет всем

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top