我有这个类:问题排着队MEF合同
public interface IHandles<DOMAINEVENT> where DOMAINEVENT : IDomainEvent
{
void Handle(DOMAINEVENT args);
}
[Export(typeof(IHandles<IDomainEvent>))]
public class NewMemberWasRegisteredHandler : IHandles<NewMemberWasRegistered>
{
public void Handle(NewMemberWasRegistered args)
{
//EmailSender.Send
Console.WriteLine("***New Member Registration Email Sent");
}
}
这我想导出到:
公共类HandlerContainer { 公共HandlerContainer(){ 处理程序 =新名单>(); }
[ImportMany()]
public List<IHandles<IDomainEvent>> Handlers { get; set; }
}
我得到的例外是:
1)出口 'Multi_Tenant_MEF_Solution.NewMemberWasRegisteredHandler(ContractName = “Multi_Tenant_MEF_Solution.IHandles(Multi_Tenant_MEF_Solution.IDomainEvent)”)' 不分配键入“ Multi_Tenant_MEF_Solution.IHandles`1 [[Multi_Tenant_MEF_Solution.IDomainEvent,Multi-Tenant-MEF-Solution,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]'。
我是一个MEF newb(2小时),所以这是莫名其妙的。我可以找到的所有示例都使用导入和导出的无参数构造函数,所以我不清楚我的typeof()或字符串合约应该是什么。