gpt4 book ai didi

.net - 实体库 6/Unity 3 : Injecting a dependency into a CustomTraceListener

转载 作者:行者123 更新时间:2023-12-04 01:56:54 25 4
gpt4 key购买 nike

背景:

我在整个解决方案中使用 Enterprise Library 6 和 Unity 3 来管理横切关注点,并将其作为管理依赖注入(inject)的轻量级容器。我需要开发自定义跟踪监听器。我需要向该自定义跟踪监听器中注入(inject)依赖项。

此功能在 Enterprise Library 5 和 Unity 2 中可用。以下链接提供了一个很好的示例来说明如何实现它(我自己的要求与链接中概述的要求几乎相似):

Unity / EntLib: Injecting a dependency into a CustomTraceListener

但是,由于以下原因,它似乎并不是 Enterprise Library 6 中的直接迁移:

Ent Lib 6 TraceListenerData 类不再提供针对以下内容的覆盖:

GetCreationExpression()

...方法。在 Ent Lib 6 中,新功能提供于:

CoreBuildTraceListener()

...方法。我的理解是,Ent Lib 5 GetCreationExpression() 允许将“标记”放置在返回的表达式中,在解析 Unity 容器时可以将其替换。新的 CoreBuildTraceListener() 返回 Trace Listener 的新实例。

此外,Enterprise Library 不再使用 Unity 容器来解析实例。的:

EnterpriseLibraryCoreExtension

...已被删除。新方法将遵循以下原则:

container.RegisterInstance(logWriterFactory.Create());

但是,对我而言,这意味着在通过 Unity 容器进行任何调用以解析接口(interface)之前调用 CoreBuildTraceListener()(在 logWriterFactory.Create() 上)。

问题:

使用 Enterprise Library 6 和 Unity 3,是否可以:

一个。在正确的时间获取 CoreBuildTraceListener() 方法中的 Unity 容器 - 这样我就可以在创建自定义跟踪监听器时找到需要注入(inject)到我的自定义跟踪监听器中的适当接口(interface),或者。 ..

是否有一种新方法可以实现我不知道的相同最终目标(如果可能,请提供一个简单的示例?)或...

此功能退步了吗?

最佳答案

已解决。有关该主题的更多信息,请参见以下链接:

https://unity.codeplex.com/discussions/461536

关于.net - 实体库 6/Unity 3 : Injecting a dependency into a CustomTraceListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com