小编Emi*_*mil的帖子

根据自身的简单注入器直接或间接输入

我想创建Cache服务,它将常规服务作为构造函数参数.然后,当缓存键不存在时,我想调用常规服务并更新缓存.我的想法是在常规服务和缓存服务中使用相同的界面.但是,当我尝试注入缓存服务实现和执行方法时,我得到异常:

类型IUserRepository的已注册委托引发了异常.配置无效.CacheUserRepository类型直接或间接取决于它自身.

我的代码:

public interface IUserRepository
{
    UserDTO Get(int userId);
}

public class UserRepository : IUserRepository
{
    public virtual UserDTO Get(int userId)
    {
            return new UserDTO() { Id = 1, Age = 28, Name = "Emil" };
    }
}      
Run Code Online (Sandbox Code Playgroud)

这是我的缓存存储库:

public class CacheUserRepository : IUserRepository
{
    private readonly IUserRepository _userRepository;
    private readonly ICache _cache;

    public CacheUserRepository(IUserRepository userRepository, ICache cache)
    {
            _userRepository = userRepository;
            _cache = cache;
    }

    public DTO.UserDTO Get(int userId)
    {
            var userKey = "User_" + userId.ToString();

            UserDTO val …
Run Code Online (Sandbox Code Playgroud)

.net c# dependency-injection simple-injector

9
推荐指数
1
解决办法
2638
查看次数

标签 统计

.net ×1

c# ×1

dependency-injection ×1

simple-injector ×1