私は、次のしている:MEFにこのインターフェイスに必要なタイプを教えてください。
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; }
はそれをインポートし、自動的にEmailService
のどのバージョンを知っているので、設定ファイルやその他の場所でMEFを設定する方法はありますか?
私はあなたがコレクション内のすべてを取得し、あなたの設定ファイルに基づいて必要なものを選ぶことができると思います。コード化するのに十分シンプルでなければなりません。 –
ポイントは何ですか? MEFの目的は、アドインシナリオをサポートすることです。そのため、消費者は特定の依存関係を指示すべきではありません。 –