netCore使用依赖注入

依赖注入是一种设计模式,用于解耦组件间的依赖。在.NETCore中,可以通过内置的依赖注入容器实现。文章介绍了如何定义接口、实现类,然后在Startup.cs的ConfigureServices方法中注册服务,以及如何使用属性或构造函数注入来使用这些服务。此外,还提到了.NETCoreDI的三种生命周期:Transient、Scoped和Singleton。
摘要由CSDN通过智能技术生成

依赖注入是一种常用的设计模式,用于解耦组件之间的依赖关系。通过依赖注入,我们可以将一个组件所依赖的其他组件的创建和管理工作交给容器来完成,从而实现组件之间的解耦和灵活性

.NET Core提供了内置的依赖注入容器,使我们能够轻松地实现依赖注入。下面是使用依赖注入的步骤:

定义接口

定义一个接口

ICacheUtil

namespace Snblog.Cache.CacheUtil
{
    public interface ICacheUtil
    {
        public T CacheNumber<T>(string key, T value);
        public T CacheString<T>(string key, T value);
    }
}

接口实现类

CacheUtil

using Snblog.Cache.Cache;

namespace Snblog.Cache.CacheUtil
{
    public class CacheUtil:ICacheUtil
    {

        public T CacheNumber<T>(string key, T value)
        {
          // 实现具体的逻辑
        }


        public T CacheString<T>(string key, T value)
        {
          // 实现具体的逻辑
        }
    }
}

注册服务

接下来,需要在依赖注入容器中注册服务。这样,当我们需要使用该服务时,容器将自动创建并提供相应的实例。

.NET Core中,在Startup.cs文件的ConfigureServices方法中进行服务注册。例如,我们可以将IMyService接口和MyService实现类注册为服务:

ConfigureServices

public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<ICacheUtil,CacheUtil>();
}

使用依赖注入

private readonly CacheUtil _cacheUtil;
public SnArticleService(ICacheUtil cacheUtil)
{
    _cacheUtil = (CacheUtil) cacheUtil;
}
public IActionResult Index()
{
    _cacheUtil.CacheString("Teset");
    return View();
}

属性注入

[Inject]
private readonly CacheUtil _cacheUtil;
public IActionResult Index()
{
    _cacheUtil.CacheString("Teset");
    return View();
}

生命周期

.NET Core DI 为我们提供的实例生命周期包括三种:

  • Transient: 每一次GetService都会创建一个新的实例
  • Scoped: 在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http request会在一个 scope内)
  • Singleton :整个应用程序生命周期以内只创建一个实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NetCore依赖注入是指.NET Core框架提供的一种轻量级和高效的依赖注入机制。依赖注入是一种设计模式,用于实现对象之间的解耦和松耦合。在.Net Core中,依赖注入主要是通过IServiceCollection和IServiceProvider两个核心类来实现的。 首先,我们需要在Startup.cs文件的ConfigureServices方法中注册依赖关系。通过调用IServiceCollection的AddTransient、AddScoped或AddSingleton方法,我们可以将接口和具体实现类型进行关联。这些方法分别表示瞬态注入、作用域注入和单例注入。 然后,在应用程序的其他地方,我们可以通过构造函数参数、属性或方法参数的方式,将依赖对象注入到需要的地方。这些对象会由.Net Core框架自动创建和管理。 依赖注入的好处是,它可以减少代码的耦合性,使得代码更加灵活和可维护。通过将依赖对象的创建和管理交给框架,我们可以专注于业务逻辑的实现,而不需要关心对象的创建细节。同时,依赖注入也方便了单元测试的编写,我们可以轻松地替换依赖对象,进行测试和验证。 另外,依赖注入还可以提高代码的可测试性和可扩展性。通过面向接口编程,我们可以很容易地替换具体实现,实现代码的扩展和重用。 总而言之,NetCore依赖注入是一种非常有用的机制,它可以帮助我们开发更加灵活、可维护和可测试的应用程序。它提供了一种简单而强大的方式来管理和解耦各个对象之间的依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值