2012-06-25 43 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使用攔截器對我的工作?我該如何處理這個問題,以便在不爲每個服務配置攔截器的情況下自動記錄所有內容?

回答

相關問題