我已经完成了以下工作:
我想做到这一点:
每当我要求统一的任何解析时,如果该对象实现ILoggableObject,则通过Hook方法自动注入ILogger接口。
我认为这可以通过拦截或政策来实现吗?
任何帮助都会很棒。
答案 0 :(得分:2)
您正在寻找的是Unity中的TypeInterception。见这里:http://msdn.microsoft.com/en-us/library/ff660861(PandP.20).aspx
此处http://msdn.microsoft.com/en-us/library/ff660848(v=PandP.20).aspx
您希望拦截对构造函数的调用,并代表调用代码注入Logger,而不会更明智。
虽然我之前没有这样做,但我相信你可以使用Intercept.NewInstance()http://msdn.microsoft.com/en-us/library/ff662093(PandP.20).aspx
做你想做的事。答案 1 :(得分:1)
这是(尝试)执行依赖注入的一种可怕方式。使用构造函数注入代替并将ILogger注入(通过构造函数)到现在具有Hook方法的使用者。
答案 2 :(得分:0)
虽然我非常喜欢Unity和IoC / DI,但我不确定它是否是完成您想要做的事情的正确工具。
您可以考虑使用PostSharp或类似工具查看面向方面的编程。这将允许您在不更改正在检测的类的情况下添加日志记录或其他横切关注点。