小编And*_*bel的帖子

具有两个依赖服务的循环依赖

我对 C# 和依赖注入非常陌生。目前我正在开发一个新项目,希望在技术上取得进步。

在这个项目中,我遇到了三种导致循环依赖的情况。

我读了很多关于这方面的内容并找到了诸如Lazy<T>和 之类的解决方案IServiceProvider的解决方案,但我想学习针对此问题的干净解决方案,并希望遵循最常见的建议来重构代码。

在这个例子中我们有四个服务:

AccountService-> 登录、注销等

HttpService-> 做 API 的事情

LogService-> 做一些日志记录

LogRepository-> 用于 EF 的日志表/包装器的 CRUD

AccountService使用 API 通过 API 进行身份验证HttpService。后来,我想使用HttpServiceAPI 通过 API 获取更多数据。HttpService现在需要AccountService获取令牌来验证请求。这导致循环依赖错误。

账户服务

public interface IAccountService
{
    Identity Identity { get; }
    Task Login(Credentials Credentials);
    Task Logout();
}

public class AccountService : IAccountService
{
    public Identity Identity { get; private set; }
    
    private readonly IHttpService _httpService;
    private …
Run Code Online (Sandbox Code Playgroud)

.net c# rest dependency-injection webassembly

4
推荐指数
1
解决办法
924
查看次数

标签 统计

.net ×1

c# ×1

dependency-injection ×1

rest ×1

webassembly ×1