将ASP.NET多层应用程序迁移到ASP.NET Core

亚尔吉克斯

我将ASP.NET多层项目迁移到ASP.NET Core。我在我的旧项目中使用了Ninject for DI,因此在我的BLL中可以这样称呼它。

public void  IamMethodInBll()
{
    ...
    //i could call ninject like this.
    var prodCalcManager = Const.NinjectKernel.Get<IProdCalcService>();
    prodSurr.CalculatedPrice = prodCalcManager.GetMyMethod()
    ..
}

现在,我当然使用ASP Net Core的DI系统。但是,如何在业务层中为ASP.NET Core调用服务定位器?我需要您的样品和建议。

在Startup.cs中

services.AddScoped<IProdCalcService,ProdCalcManager>();

在BLL中

public void  IamMethodInBll()
{
    ...
    //What's the proper way to call another service in BLL
    //How can  i get the service provider in BLL
    var prodCalcManager = _serviceProvider.GetService<IProdCalcService>();
    prodSurr.CalculatedPrice = prodCalcManager.GetMyMethod()
    ..
}
罗伯特·佩里

正确的答案是:不要使用ServiceLocator。使用services.AddScoped<T>类似的方式注册服务,然后将其添加到要在其中使用的类的构造函数。

像这样:

services.AddScoped<IProdCalcService,ProdCalcManager>();

然后您的课程如下所示:

public class MyClass()
{

    private IProdCalcService calcService;

    public MyClass(IProdCalcService calcService)
    {
        this.calcService = calcService;
    }

    public void IamMethodInBll()
    {

        //...

        prodSurr.CalculatedPrice = calcService.GetMyMethod();

        //...
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将经典 ASP 应用程序迁移到 ASP.NET Core

如何将身份用户从MVC5应用程序迁移到ASP.NET Core 2.2应用程序

是否可以将 MVC“.Net framework 4.5”应用程序迁移到“ASP.NET MVC CORE”。如果是,那么如何?

将 ASP.NET Core 3.1 迁移到 .NET 5.0

将.net core 2.2应用程序迁移到3.1,它将无法在Azure中使用

将HTML助手迁移到ASP.NET Core

将ASP.NET应用程序迁移到新服务器

从asp net 5迁移到asp net core时出错

将现有的Web窗体应用程序迁移到ASP.Net MVC单页应用程序

将WCF绑定从ASP.NET迁移到ASP.NET Core完整框架

发布ASP.NET Core应用程序时自动执行迁移

EF Code First迁移替代ASP.NET Core应用程序

如何在基于 ASP.NET Core 5 的多层 Web 应用程序中初始化 AutoMapper?

将包含经典ASP页面以及ASPX页面的ASP.NET应用程序从1.1框架迁移到4.0

将ASP.NET WebForms应用程序中的组合的窗体/ Windows身份验证迁移到asp.net MVC应用程序

将ASP.NET Core应用程序的目标框架从.NET Framework 4.7.2更改为.NET Core 2.2

ASP.NET Web应用程序(.NET Framework)与ASP.NET Core Web应用程序(.NET Framework)

ASP.NET Core MVC 应用程序无法在 MariaDB 上应用实体框架核心迁移。指定的键太长

是否将ASP.NET Core 5应用程序部署到Azure应用服务?

如何将XML从ASP.NET 4 Web API返回到ASP.NET Core 2应用程序?

将文件从ASP.NET MVC 4.6应用程序发布到ASP.NET Core Web API

ASP.NET Core Web API与ASP.NET Core应用程序

ASP.NET Core应用程序的多主机部署

ASP.NET Core应用程序如何构建?

ASP .Net Core Web 应用程序调用 Web API

ASP.NET Core中的应用程序启动代码

ASP.Net Core应用程序中LocalAppData的路径

ASP.NET Core 2.0中的应用程序变量

ASP.NET Core MVC应用程序设置