登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发资讯 > 正文

如何在ASP.Net 代码中使用依赖注入(DI)

2017-10-17 17:28    it168网站原创  作者: 编译|三文鱼 编辑: 单文彦

  【IT168 资讯】利用ASP.Net 代码中的依赖注入来插入组件并提高代码维护性和可测试性

  对依赖注入的支持建立在ASP.Net代码、微软的开源、跨平台、精益和模块化框架中,用于构建高性能、可扩展的web应用程序。在ASP.Net代码中,可以将框架服务和应用程序服务注入到类中,而不是紧密耦合。在本文中,我们将介绍如何在ASP.Net代码中使用依赖注入。

  依赖注入(也称DI)是一种设计模式,其中一个类或对象将其依赖的类注入(由另一个类或对象传递给它),而不是直接创建它们。依赖注入有利于促进松耦合,提高可测试性和维护性。此外,依赖注入允许更改实现,而无需更改利用这些实现的类或接口。

  通过依赖注入在ASP.Net中提供服务

  现在在Visual Studio中使用ASP.Net代码构建一个简单的服务,并说明如何将它添加到依赖注入容器中,并将其注册到管道中,然后在应用程序中使用它。 按照以下步骤在Visual Studio 2017或Visual Studio 2015中创建一个新的ASP.Net代码项目。如果您使用Visual Studio 2015,请确保已安装.Net Core。

  1.打开Visual Studio

  2.单击文件 - >新建 - >项目

  3. 在“新建项目”对话框窗口中,选择“ASP.NET Core Web Application”项目模板

  4.指定项目的名称和位置,然后单击OK保存

  现在,创建以下POCO类。

  如何在ASP.Net 代码中使用依赖注入

  考虑以下名为ITopicAreaService的接口,代表TopicAreaService的协议。

  如何在ASP.Net 代码中使用依赖注入

  ITopicAreaService接口包含一个名为getalltopicare()的方法声明。TopicAreaService类实现了ITopicAreaService,如下所示。

  如何在ASP.Net 代码中使用依赖注入

  在ASP.Net中注册依赖注入服务

  作为ASP.Net代码的一部分,下一步是使用依赖注入容器注册TopicAreaService。请在Startup.cs文件中的ConfigureServices方法中编写下面的代码段。 ConfigureServices方法将服务添加到服务容器中,使它们通过依赖注入在应用程序中可用,在运行时自动调用。

  如何在ASP.Net 代码中使用依赖注入

  如果您有多个需要注册的服务,您可以使用如下所示的扩展方法。

  如何在ASP.Net 代码中使用依赖注入

  调用RegisterServices方法可以使ConfigureServices方法保持不间断的可维护性。 而不是在ConfigureServices中指定每个服务,您需要做的是在ConfigureServices方法中调用RegisterServices扩展方法一次,如下面的代码片段所示。

  如何在ASP.Net 代码中使用依赖注入

  依赖注入在ASP.Net中的生命周期

  依赖注入生命周期用于指定何时创建和重新创建依赖对象。 就ASP.Net代码应用程序中依赖注入实例的生命周期而言,有三种可能性:

  1. Singleton:这意味着只有一个实例将被所有消费者创建和共享。

  2. Scoped:这意味着每个范围一个实例(即每个请求到应用程序的一个实例)将被创建。

  3. Transient:这意味着组件将不会共享,但将在每次请求时创建。

  请注意,在本示例中,我们使用了Transient类型。 以下代码片段说明了如何在注册服务时使用其他类型的生命周期。

  如何在ASP.Net 代码中使用依赖注入

  在ASP.Net中通过依赖注入使用服务

  现在,实现的服务已被添加到管道中,可以在ASP.Net代码项目的任何控制器中使用它。 以下代码片段说明了如何在控制器中请求TopicAreaService的实例。

  如何在ASP.Net 代码中使用依赖注入

  以下是控制器操作方法调用TopicAreaService的GetAllTopicAreas方法。

  如何在ASP.Net 代码中使用依赖注入

  如何在ASP.Net 代码中使用依赖注入

  如何在ASP.Net 代码中使用依赖注入

相关文章
  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫码送文库金币

编辑推荐
系统架构师大会
系统架构师大会
点击或扫描关注
IT168企业级微信关注送礼
IT168企业级微信关注送礼
扫描关注
首页 评论 返回顶部