我一直在努力让 DecorateAllWith 处理通用接口。我在这里阅读了一些帖子,他们使用拦截器解决了这个问题,但他们似乎使用的是较旧的结构图版本,它似乎不是一个“干净”的解决方案。
我真的需要一些帮助才能让它与结构图 3 一起使用
我有一个通用存储库,我想用日志记录和缓存来装饰它
public interface IEntityRepository<T> where T : Entities.IEntity
{
}
我有大约 20 个继承 IEntityRepository 的接口。示例 mu UserRepository
public interface IUserEntityRepository : IEntityRepository<User>
{
}
然后我有日志装饰器具体类型,我希望 IEntityRepository 的所有实例都用它来装饰
public class LoggingEntityRepository<T> : IEntityRepository<T> where T : Entities.IEntity
{
private readonly IEntityRepository<T> _repositoryDecorated;
public LoggingEntityRepository(IEntityRepository<T> repositoryDecorated)
{
_repositoryDecorated = repositoryDecorated;
}
}
还是有其他更适合我想要完成的 IoC 容器?
编辑:有没有办法装饰从 IEntityRepository 继承的所有接口