我将追踪Unity容器管理的服务中发生的每个操作,将其作为日志记录在文件系统中。我打算定义一个名为IService的接口,所有其他接口或实现都应该继承自它。另一方面,我想开发一个自定义拦截行为或调用处理程序,将日志保存到文件中。
不幸的是,我发现使用这些代码对我来说行不通。
不幸的是,我发现使用这些代码对我来说行不通。
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中使用拦截器是否有什么误解?我该如何处理这个问题,自动记录每个服务的日志,而不需要为每个服务配置拦截器?