我是靠谱客的博主 粗暴篮球,最近开发中收集的这篇文章主要介绍在ASP.Net Web Forms中使用依赖注入的步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模块,而应该统一依赖于抽象或者接口。

.Net Framework 4.7.2 中引入了对依赖注入的支持,终于在 ASP.Net Web Forms 中可以使用依赖注入机制了,这篇文章将会讨论如何在 ASP.Net Web Forms 中去使用。

创建 WebForm 项目

在 ASP.Net Web Forms 中使用依赖注入,一定要记得将项目框架设为 4.7.2 以上,要么右键项目在属性面板上选择 4.7.2 版本。

也可以直接在 web.config 做如下设置。

<system.web>
 <compilation debug="true" targetFramework="4.7.2" />
 <httpRuntime targetFramework="4.7.2" />
...
</system.web>

接下来就可以通过 Nuget 安装 AspNet.WebFormsDependencyInjection.Unity 包,可以通过 Visual Studio 2019 的 NuGet package manager 可视化界面安装 或者 通过 NuGet package manager 命令行工具输入以下命令:

dotnet add package AspNet.WebFormsDependencyInjection.Unity

创建实体 和 接口

现在创建一个名为 Author 实体类 和 IAuthorRepository 接口。

 public class Author
 {
  public int Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
 }

 public interface IAuthorRepository
 {
  bool Create(Author author);
  Author Read(int id);
  List<Author> Read();
 }

然后再用 AuthorRepository 类实现一下 IAuthorRepository 接口,代码如下:

 public class AuthorRepository : IAuthorRepository
 {
  public bool Create(Author author)
  {
   throw new System.NotImplementedException();
  }
  public Author Read(int id)
  {
   throw new System.NotImplementedException();
  }
  public List<Author> Read()
  {
   throw new System.NotImplementedException();
  }
 }

创建容器和类型注册

现在我们创建 依赖注入容器,然后注入我们想要的类型,下面的代码用于创建 Unity容器。

var container = this.AddUnity();

然后在 Application_Start 事件中进行对象的 依赖配置,如下代码所示:

container.RegisterType<IAuthorRepository, AuthorRepository>();

对了,记的引入一下如下两个命名空间。

  • AspNet.WebFormsDependencyInjection.Unity
  • Unity

下面是 Global 类的完整代码,仅供参考。

using Microsoft.AspNet.WebFormsDependencyInjection.Unity;
using System;
using System.Web;
using System.Web.Optimization;
using System.Web.Routing;
using Unity;

namespace WebformsDIDemo
{
 public class Global : HttpApplication
 {
  void Application_Start(object sender, EventArgs e)
  {
   var container = this.AddUnity();
   container.RegisterType<IAuthorRepository, AuthorRepository>();
   // Code that runs on application startup
   RouteConfig.RegisterRoutes(RouteTable.Routes);
   BundleConfig.RegisterBundles(BundleTable.Bundles);
  }
 }
}

WebForms 使用依赖注入

现在容器,对象依赖都配置好了,接下来怎么在 Page 中用呢? 可以参考下面的代码。

 public partial class _Default : Page
 {
  private IAuthorRepository _authorRepository;

  public _Default(IAuthorRepository authorRepository)
  {
   _authorRepository = authorRepository;
  }

  protected void Page_Load(object sender, EventArgs e)
  {

  }
 }

上面的图很明显的显示了,authorRepository 实例在运行时中已被成功注入。

在 .Net Framework 4.7.2 框架以上,终于将 依赖注入机制 带入到了 ASP.Net Web Forms 中,需要明白的是,微软自带的Unity包是一个轻量级的依赖注入容器,可以在 页面,控件,handler,module 上使用,在 ASP.Net Web Forms 中使用依赖注入可以轻松创建对象,然后在运行时获取依赖,可让你轻松构建灵活,松散的应用程序。

以上就是在ASP.Net Web Forms中使用依赖注入的步骤的详细内容,更多关于ASP.Net Web Forms中使用依赖注入的资料请关注靠谱客其它相关文章!

最后

以上就是粗暴篮球为你收集整理的在ASP.Net Web Forms中使用依赖注入的步骤的全部内容,希望文章能够帮你解决在ASP.Net Web Forms中使用依赖注入的步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(106)

评论列表共有 0 条评论

立即
投稿
返回
顶部