Ich habe Folgendes:
public interface IEmailService
{
bool SendEmail(MailMessage message);
}
[Export(typeof(IEmailService))]
public class SmtpEmailService : IEmailService
{
}
[Export(typeof(IEmailService))]
public class AmazonEmailService : IEmailService
{
}
Wie importiere ich eine bestimmte Datei auf der Grundlage bestimmter Kriterien?
Wenn ich z. B. den Dienst verwende, habe ich so etwas wie das hier:
public class MobileService
{
[Import]
public IEmailService EmailService { get; set; }
Gibt es eine Möglichkeit, MEF in der Konfigurationsdatei oder an anderer Stelle so zu konfigurieren, dass es automatisch WISSEN kann, welche Version von EmailService
zu importieren?
0 Stimmen
Ich denke, Sie können alle in einer Sammlung zusammenfassen und dann anhand Ihrer Konfigurationsdatei die gewünschte Option auswählen. Sollte einfach genug sein, um Code.
1 Stimmen
Was würde das bringen? Der Zweck von MEF ist es, Add-in-Szenarien zu unterstützen, so dass der Verbraucher nicht eine bestimmte Abhängigkeit vorschreiben sollte...