我正在使用棱镜的桌面库。
我想要的是在目录中获取模块,然后运行它们。
我喜欢这样:
DirectoryModuleCatalog catalog = new DirectoryModuleCatalog();
catalog.ModulePath = @"C:\Users\Raph\Documents\Visual Studio 2010\Projects\LibraryLoad\LibraryLoad\Modules";
我检查了,模块已加载到目录中。模块示例:
public class SendEmailClass : IModule
{
public void SendEmail()
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("**", "moi");
mail.Subject = "Report"; //manage generated subject
mail.To.Add("***");
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
smtp.Port = 57;
smtp.EnableSsl = true; //depending of the smtp server
NetworkCredential cred = new NetworkCredential("***", "***");
smtp.Credentials = cred;
smtp.Send(mail);
}
public void Initialize()
{
SendEmail();
}
}
但后来我想运行它们(启动它们的 Initialize()),但我没有找到它。我想运行整个目录。有人有想法吗?我尝试了 catalog.Initialize()、catalog.Validate() 或 catalog.Load()