电商设计网站有哪些,wordpress 导入工具,网站开发外包哪家好,深圳专业网站建设定制依赖注入技术就是将一个对象注入到一个需要它的对象中#xff0c;同时它也是控制反转的一种实现#xff0c;显而易见#xff0c;这样可以实现对象之间的解耦并且更方便测试和维护#xff0c;依赖注入的原则早已经指出了#xff0c;应用程序的高层模块不依赖于低层模块同时它也是控制反转的一种实现显而易见这样可以实现对象之间的解耦并且更方便测试和维护依赖注入的原则早已经指出了应用程序的高层模块不依赖于低层模块而应该统一依赖于抽象或者接口。在 .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.webcompilation debugtrue targetFramework4.7.2 /httpRuntime targetFramework4.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);ListAuthor 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 ListAuthor Read(){throw new System.NotImplementedException();}}创建容器和类型注册 现在我们创建 依赖注入容器然后注入我们想要的类型下面的代码用于创建 Unity容器。
var container this.AddUnity();然后在 Application_Start 事件中进行对象的 依赖配置如下代码所示
container.RegisterTypeIAuthorRepository, AuthorRepository();对了记的引入一下如下两个命名空间。AspNet.WebFormsDependencyInjection.UnityUnity下面是 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.RegisterTypeIAuthorRepository, AuthorRepository();// Code that runs on application startupRouteConfig.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包是一个轻量级的依赖注入容器可以在 页面控件handlermodule 上使用在 ASP.Net Web Forms 中使用依赖注入可以轻松创建对象然后在运行时获取依赖可让你轻松构建灵活松散的应用程序。译文链接https://www.infoworld.com/article/3397003/how-to-use-dependency-injection-in-aspnet-web-forms.html