如何在 ASP.Net Web Forms 中使用依赖注入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在 ASP.Net Web Forms 中使用依赖注入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2988字,纯文字阅读大概需要5分钟。
内容图文
依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模块,而应该统一依赖于抽象或者接口。
在 .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 实例在运行时中已被成功注入。
更多精彩,欢迎订阅
标签:,,,,,,, 来源: https://www.cnblogs.com/ireadme/p/14543095.html
内容总结
以上是互联网集市为您收集整理的如何在 ASP.Net Web Forms 中使用依赖注入全部内容,希望文章能够帮你解决如何在 ASP.Net Web Forms 中使用依赖注入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。