【发布时间】:2012-01-25 02:13:10
【问题描述】:
我有以下内容:
public interface IEmailService
{
bool SendEmail(MailMessage message);
}
[Export(typeof(IEmailService))]
public class SmtpEmailService : IEmailService
{
}
[Export(typeof(IEmailService))]
public class AmazonEmailService : IEmailService
{
}
如何根据某些条件导入特定的?
例如,当我使用服务时,我有这样的事情:
public class MobileService
{
[Import]
public IEmailService EmailService { get; set; }
有没有办法在配置文件或任何其他地方配置 MEF,以便它自动知道要导入哪个版本的 EmailService?
【问题讨论】:
-
我认为您可以将它们全部放在一个集合中,然后根据您的配置文件选择您需要的一个。编码应该足够简单。
-
重点是什么? MEF 的目的是支持加载项方案,因此使用者不应指定特定的依赖项...
标签: c# .net inversion-of-control mef