我有這個類:問題排着隊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()或字符串合約應該是什麼。