customTraceListener的Unity解析?

时间:2011-11-13 18:18:01

标签: c# unity-container

我有一个自定义跟踪侦听器,带有一个简单的构造函数;

public MyTraceListener(ISomething something)
{
_something = something;
}

这是通过web.config中的system.diagnostics连接到我的网络应用程序。但是,它似乎永远不会解雇这个。如何让团结来解决这个问题?我需要以某种方式编辑我的web.config吗?如果我添加一个触发的默认构造函数,那么正确的方法是让默认构造函数对它自己做某种解析吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,你有点卡住了。跟踪系统没有为您提供接管对象创建的机会,因此Unity没有机会进行构造函数注入。系统将新建跟踪侦听器。

您可以做的最好的事情是将依赖项设置为属性,而不是构造函数依赖项,然后在创建跟踪侦听器对象之后获取它,并在其上调用container.BuildUp以获取注入的属性。

答案 1 :(得分:0)

您是否在代码或web.config中注册了ISomething with Unity?

这样的东西
var container = new UnityContainer().RegisterType<ISomething, Something>();

或通过配置文件描述[here]

您是否致电Unity解析自定义TraceListener?

var myTraceListener = container.Resolve<MyTraceListener>();

或者您是否将侦听器注入应该使用的其他类中,以便Unity将侦听器作为参数解析?