如何配置为团结所有注册类型日志记录拦截器?(How to configure a logging i

2019-06-25 18:04发布

我要追踪其中通过统一容器管理的文件系统日志服务发生的每一个动作。 我想我可以定义一个名为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使用拦截器? 我怎样才能解决这个问题,而无需为每个服务配置拦截器自动登录的一切吗?

Answer 1:

有落实记录许多方面。 很久以前,我写了一篇关于如何建立一个拦截文章:

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

对于日志,你可以使用Debug.Write,并配置TraceListeners。 或者,你也可以使用企业库或任何第三方的日志库。

亲切的问候,数量锐减



文章来源: How to configure a logging interceptor for all registered type in Unity?