在ASP.Net Web Forms中使用依赖注入的步骤
更新时间:2021年03月17日 09:10:11 作者:码农读书
这篇文章主要介绍了在ASP.Net Web Forms中使用依赖注入的步骤,帮助大家更好的理解和学习使用.NET技术,感兴趣的朋友可以了解下
目录创建 WebForm 项目
创建实体 和 接口
创建容器和类型注册
WebForms 使用依赖注入
依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模块,而应该统一依赖于抽象或者接口。
在 .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 core 依赖注入ASP.NET Core 过滤器中使用依赖注入知识点总结ASP.NET MVC实现依赖注入的完整过程ASP.NET Core依赖注入系列教程之控制反转(IoC)ASP.NET Core依赖注入系列教程之服务的注册与提供详解ASP.NET Core 中的框架级依赖注入详解ASP.NET Core 在 JSON 文件中配置依赖注入解读ASP.NET 5 & MVC6系列教程(7):依赖注入扩展ASP.NET MVC三层框架且使用StructureMap实现依赖注入1-Model层
ASP.Net
Web
Forms
依赖注入
相关文章
ASP.NET中的Cache使用介绍这篇文章主要介绍了ASP.NET中的Cache使用介绍,本文讲解了Cache 是怎么工作的、Cache 怎么创建及怎么销毁、什么时候用cache、cache 调用注意事项等内容,需要的朋友可以参考下 2015-06-06
ASP.NET GridView中加入RadioButton不能单选的解决方案这篇文章主要介绍了ASP.NET GridView中加入RadioButton不能单选的解决方案,希望大家阅读完本文有所收获。 2015-09-09
Visual Studio 2017新版发布 更强大!Visual Studio 2017新版发布 更强大!对Visual Studio 2017感兴趣的小伙伴们可以参考一下 2017-05-05
.Net Core在程序的任意位置使用和注入服务的方法这篇文章主要介绍了.Net Core在程序的任意位置使用和注入服务的方法,很多朋友对此问题都不是很清楚,于是写这篇文章帮助大家学习,需要的朋友可以参考下 2018-10-10
Visual Stduio 2010开发环境搭建教程这篇文章主要为大家详细介绍了Visual Stduio 2010开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-04-04
ASP.NET Core Kestrel 中使用 HTTPS (SSL)这篇文章主要为大家详细介绍了ASP.NET Core Kestrel 中使用 HTTPS(SSL)的相关资料,感兴趣的小伙伴们可以参考一下 2016-09-09
浅谈ASP.NET Core 中jwt授权认证的流程原理这篇文章主要介绍了浅谈ASP.NET Core 中jwt授权认证的流程原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-03-03
ASP.NET MVC学习之NuGet在VS中的运用浅谈这篇文章主要给大家介绍了关于ASP.NET MVC学习之NuGet在VS中运用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。 2018-01-01
浅谈.NET反射机制的性能优化 附实例下载在进入解释型模版引擎的探讨之前,我决定先分享一下这篇博客。因为在解释型引擎里将会引入反射的概念来实现更多、更复杂的功能 2012-04-04
asp.net 利用NPOI导出Excel通用类的方法 本篇文章主要介绍了asp.net 利用NPOI导出Excel通用类的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2017-06-06
最新评论
本文由 华域联盟 原创撰写:华域联盟 » 在ASP.Net Web Forms中使用依赖注入的步骤
转载请保留出处和原文链接:https://www.cnhackhy.com/4956.htm