在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 版本。

在ASP.Net Web Forms中操作依赖注入的法式

也可以直接在 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) { } }

在ASP.Net Web Forms中操作依赖注入的法式

上面的图很明明的显示了,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中利用依赖注入的资料请存眷剧本之家其它相关文章!

您大概感乐趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsjfwd.html