小编Mac*_*wan的帖子

如何为Unity中的所有已注册类型配置日志记录拦截器?

我将跟踪由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");
Run Code Online (Sandbox Code Playgroud)

在Unity中使用拦截器对我有什么误解吗?如何在不为每项服务配置拦截器的情况下自动记录所有内容?

c# aop ioc-container unity-container

6
推荐指数
1
解决办法
7827
查看次数

标签 统计

aop ×1

c# ×1

ioc-container ×1

unity-container ×1