我有这样的方法:
public static void Raise<TEvent>(TEvent eventToRaise)
where TEvent : IEvent
{
}
我这样称呼该方法:
foreach (IEvent evt in entity.UncommittedEvents)
{
DomainEvents.Raise(evt);
}
我认为这是真的:
bool areSame = typeof(TEvent) == eventToRaise.GetType();
但似乎并非如此。相反,它是:
bool areSame = typeof(TEvent) == typeof(IEvent);
为什么呢?
这里的问题是我在这里“丢失”了类型的具体事件。当我将该类型参数传递给下一个方法(没有事件实例)时,我只输入“IEvent”......