我使用 MEF 作为 IoC 容器。
如果请求的类位于 Foo.UI.* 命名空间中,我想要 ILogger
解决 ClientLogger
,否则它应该解析为 Logger
。我可以这样做吗?
最佳答案
也许有这样的解决方法,使用命名导出?
[Export("clientLogger", typeof(ILogger))]
public class ClientLogger : ILogger {}
[Export("logger", typeof(ILogger))]
public class logger: ILogger {}
Foo.UI.* 中的请求类型装饰如下
[ImportingConstructor]
public MyService([Import("clientLogger", typeof(ILogger))]ILogger logger)
我知道这不是最好的解决方案,但也许它会起作用。
关于.net - 使用 MEF 按命名空间解析导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203313/