.net - 使用 MEF 按命名空间解析导入

标签 .net dependency-injection namespaces ioc-container mef

我使用 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/

相关文章:

.net - 用于 Azure 扩展的 Wasabi block 多久收集一次数据?

android - IntentService 的依赖注入(inject)不起作用

dependency-injection - 依赖注入(inject) : Angular 2 not working

对象上方的python命名空间层次结构

xml - 使用 XML 命名空间

c# - .net 下是否提供 CryptoAPI(CryptEncrypt 和 CryptDecrypt)?

c# - HttpClient在某些情况下修改BaseAddress

.net - 在 WPF 中从一个页面重定向到另一页面

java - spring @Autowire 属性与 setter

ruby-on-rails - 我怎样才能从 gem 的类(class)中消除我自己的类(class)的歧义