日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何在 Web Forms 中引入依赖注入机制

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 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?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包是一個輕量級的依賴注入容器,可以在 頁面,控件,handler,module 上使用,在 ASP.Net Web Forms 中使用依賴注入可以輕松創建對象,然后在運行時獲取依賴,可讓你輕松構建靈活,松散的應用程序。

譯文鏈接:https://www.infoworld.com/article/3397003/how-to-use-dependency-injection-in-aspnet-web-forms.html

總結

以上是生活随笔為你收集整理的如何在 Web Forms 中引入依赖注入机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。