当前位置: 首页 > 知识库问答 >
问题:

System.AggregateException:“某些服务无法构造”ASP.NET核心

子车灿
2023-03-14

我正在尝试将一个服务注入到另一个服务中,但我无法使它工作,在网上搜索了一下后,我还看不到解决方案。

这是确切的错误:

System.AggregateException:“无法构造某些服务(验证服务描述符”ServiceType:MyBank.services.ITRansactionService Lifetime:作用域实现类型:MyBank.services.TransactionService“时出错:尝试激活”MyBank.services.TransactionService“时无法解析类型”MyBank.services.AccountsService“的服务。)”

我有这样的服务:

public class AccountsService : IAccountsService

我想把它注入到另一个服务中:

public class TransactionService : ITransactionService
{
        private readonly ApplicationDbContext db;
        private readonly AccountsService accountsService;

        public TransactionService(ApplicationDbContext db, AccountsService accountsService)
        {
            this.db = db;
            this.accountsService = accountsService;
        }
}

这是我的Startup.cs服务区域:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DefaultConnection")));
            _ = services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = false)
                .AddEntityFrameworkStores<ApplicationDbContext>();
            services.AddControllersWithViews().AddNewtonsoftJson(options =>
                options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
            services.AddRazorPages().
                AddRazorRuntimeCompilation();         
            services.AddScoped<IAccountsService, AccountsService>();
            services.AddScoped<ITransactionService, TransactionService>();
        }

共有1个答案

萧亦
2023-03-14

您正在尝试将AccountsService(实现),而不是IAccountsService(接口)注入TransactionService

 类似资料:
  • 我想将我的房间存储库和Rest存储库注入到我的ViewModel类中。然而,我可以注入rest存储库,但当我尝试注入room存储库时,它会出错。 错误是这样的: 错误:[dagger.android.AndroidInjector.inject(T)]me.ibrahimsn.capsules.data.local.message.如果没有@Provides-anttated方法,则无法提供Mes

  • 也许我错过了它,但我正在试图弄清楚如何在ASP.NET核心中实现这一点。我查看了源代码(https://github.com/aspnet/security),但没有看到任何类似的内容。有没有新的方法来完成这一点?我需要创建一个控制器然后自己做吗? 我看到了如何通过中间件来设置OAuth身份验证,但这涉及到从API发出声明的授权部分。

  • 我正在创建spring web应用程序,并试图添加带有货币数据的新实体(javamoney.moneta)。下面是代码: 添加到表a中的money和data列将用FastMoney填充。FastMoney是从BigDecimal money和String CurrencyUnit在构造函数内部创建的。 我该怎么办?

  • 我已经为我的应用程序实现了shedlock,对于我们拥有的两台服务器来说,它运行良好,没有任何问题。 我们现在在另一个域上添加了两个新服务器,shedlock也会选择它们。(好吧,这就是它的本意) 我有一份工作,创建pdf文件并将其放在文件夹中。添加的新服务器无权访问这些文件夹。因此,当这两个新服务器选择作业时,我的作业将失败。 有没有可能告诉夏洛克从我的两台服务器中选择任何一台,或者不选择另外两

  • 我对Azure Service Fabric有问题。 我已经安装了它(在Windows 7上),正如https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-get-started/. 但是当我尝试从Visual Studio运行Service Fabric应用程序时,我看到Windows服务Microsoft

  • 首先,我使用Windows 7 64位,WAMP 32位和火鸟32位。 我试图使用PHP与火鸟或interbase,所以我取消注释以下行从我的php.ini文件: 然后,当我启动WAMP时,会出现以下错误: 我已经尝试过的: 有人知道我该怎么解决这个问题吗?谢谢