【发布时间】:2021-06-10 03:33:00
【问题描述】:
我正在尝试实现一个系统范围的通用 CRUD 跟踪器来监听 CRUD 操作
在 nopCommerce 中,有以下事件:
EntityInsertedEvent<TEntity>
EntityUpdatedEvent<TEntity>
EntityDeletedEvent<TEntity>
可以通过实现IConsumer<EntityInsertedEvent<TEntity>>接口来使用。
IConsumer.cs
public interface IConsumer<T>
{
void HandleEvent(T eventMessage);
}
Entity Inserted/Updated/Deleted Event.cs
public class EntityInsertedEvent<T> where T : BaseEntity
{
public EntityInsertedEvent(T entity);
public T Entity { get; }
}
标准实现是:(仅与 BaseEntity 一起触发)
public class EventConsumer :IConsumer<EntityInsertedEvent<BaseEntity>>
尝试:
// compiles but there is a type mismatch between `BaseEntity` and the "EntityEvents"
public class MyConsumer<TEntity> :IConsumer<EntityInsertedEvent<TEntity>> where TEntity: BaseEntity
// does not compile because `TEntity` was not defined
public class MyConsumer :IConsumer<EntityInsertedEvent<TEntity>> where TEntity: BaseEntity
我应该如何实现MyConsumer?
【问题讨论】:
标签: asp.net-core interface nopcommerce