2012-06-25 2 views
6

Я собираюсь отслеживать все действия, произошедшие в службах, которые управляются контейнером Unity как журналы в файловой системе. Полагаю, я мог бы определить интерфейс с именем IService, и все остальные интерфейсы или реализация должны унаследовать его. С другой стороны, я хотел бы разработать пользовательское поведение перехвата или обработчик вызовов для сохранения журналов в файлах.Как настроить регистрационный перехватчик для всех зарегистрированных типов в Unity?

К сожалению, я обнаружил, что он не работает для меня, используя эти коды

IUnityContainer unity = new UnityContainer(); 

//Interception 
unity.AddNewExtension<Interception>(); 
Interception interception = unity.Configure<Interception>(); 
unity.RegisterType<IService>(
    new DefaultInterceptor(new InterfaceInterceptor()), 
    new DefaultInterceptionBehavior(new LoggingBehavior())); 

string[] configFiles = Directory.GetFiles(".", "*.config"); 
foreach (string configFile in configFiles) 
{ 
    var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = configFile }; 
    System.Configuration.Configuration configuration = 
     ConfigurationManager.OpenMappedExeConfiguration(fileMap, 
     ConfigurationUserLevel.None); 
    var unitySection = (UnityConfigurationSection) 
     configuration.GetSection("unity"); 
    unity = unitySection.Configure(unity); 
} 

IGateway imapGW = unity.Resolve<IGateway>("ImapGateway"); 

Есть ли недоразумение для меня использовать перехватчик в Unity? Как я могу справиться с этой проблемой, чтобы записывать все автоматически без настройки перехватчика для каждой службы?

ответ

3

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

http://hmadrigal.wordpress.com/2010/12/25/aspect-oriented-programming-and-interceptor-design-pattern-with-unity-2/

Для входа можно использовать Debug.Write и настроить TraceListeners. Или вы можете использовать корпоративную библиотеку или любую библиотеку журналов сторонних разработчиков.

С уважением, Herber

Смежные вопросы