最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在ASP.Net Web Forms中使用依賴注入的步驟

 更新時間:2021年03月17日 09:10:11   作者:碼農(nóng)讀書  
這篇文章主要介紹了在ASP.Net Web Forms中使用依賴注入的步驟,幫助大家更好的理解和學(xué)習(xí)使用.NET技術(shù),感興趣的朋友可以了解下

依賴注入技術(shù)就是將一個對象注入到一個需要它的對象中,同時它也是控制反轉(zhuǎn)的一種實現(xiàn),顯而易見,這樣可以實現(xiàn)對象之間的解耦并且更方便測試和維護,依賴注入的原則早已經(jīng)指出了,應(yīng)用程序的高層模塊不依賴于低層模塊,而應(yīng)該統(tǒng)一依賴于抽象或者接口。

.Net Framework 4.7.2 中引入了對依賴注入的支持,終于在 ASP.Net Web Forms 中可以使用依賴注入機制了,這篇文章將會討論如何在 ASP.Net Web Forms 中去使用。

創(chuàng)建 WebForm 項目

在 ASP.Net Web Forms 中使用依賴注入,一定要記得將項目框架設(shè)為 4.7.2 以上,要么右鍵項目在屬性面板上選擇 4.7.2 版本。

也可以直接在 web.config 做如下設(shè)置。

<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

創(chuàng)建實體 和 接口

現(xiàn)在創(chuàng)建一個名為 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 類實現(xiàn)一下 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();
  }
 }

創(chuàng)建容器和類型注冊

現(xiàn)在我們創(chuàng)建 依賴注入容器,然后注入我們想要的類型,下面的代碼用于創(chuàng)建 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 使用依賴注入

現(xiàn)在容器,對象依賴都配置好了,接下來怎么在 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 中使用依賴注入可以輕松創(chuàng)建對象,然后在運行時獲取依賴,可讓你輕松構(gòu)建靈活,松散的應(yīng)用程序。

以上就是在ASP.Net Web Forms中使用依賴注入的步驟的詳細內(nèi)容,更多關(guān)于ASP.Net Web Forms中使用依賴注入的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • asp.net 從POST的數(shù)據(jù)流中提取參數(shù)和文件

    asp.net 從POST的數(shù)據(jù)流中提取參數(shù)和文件

    按理,F(xiàn)orm提交的數(shù)據(jù),無論是application/x-www-form-urlencoded還是multipart/form-data(有附件時),都可在服務(wù)端通過Request.Form["name"]和Request.Files["name"]獲取到參數(shù)和上傳的文件。
    2010-02-02
  • ASP.NET Core利用Jaeger實現(xiàn)分布式追蹤詳解

    ASP.NET Core利用Jaeger實現(xiàn)分布式追蹤詳解

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core利用Jaeger實現(xiàn)分布式追蹤的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ASP.NET筆記之 行命令處理與分頁詳解

    ASP.NET筆記之 行命令處理與分頁詳解

    本篇文章小編為大家介紹,ASP.NET筆記之 行命令處理與分頁詳解。需要的朋友參考下
    2013-04-04
  • jquery提交表單mvc3后臺處理示例

    jquery提交表單mvc3后臺處理示例

    這篇文章主要介紹了jquery提交表單mvc3后臺處理示例,需要的朋友可以參考下
    2014-05-05
  • 利用asp.net實現(xiàn)生成不重復(fù)訂單號

    利用asp.net實現(xiàn)生成不重復(fù)訂單號

    訂單號在購物過程中起到了很好的識別作用,更方便的有利于工作人員識別商品,本文介紹利用asp.net實現(xiàn)生成訂單號
    2012-12-12
  • .net?6項目實現(xiàn)壓縮發(fā)布

    .net?6項目實現(xiàn)壓縮發(fā)布

    這篇文章介紹了.net?6項目實現(xiàn)壓縮發(fā)布的方式,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Global.asax取物理路徑/取絕對路徑具體方法

    Global.asax取物理路徑/取絕對路徑具體方法

    本文章來給大家簡單介紹利用Global.asax取物理路徑和取絕對路徑代碼,有需要了解的朋友可參考參考
    2013-08-08
  • aspx中頁面按鈕寫返回上一頁代碼

    aspx中頁面按鈕寫返回上一頁代碼

    近段時間,Insus.NET不斷補學(xué)習(xí)Javascript知識。但在練習(xí)寫返回上一頁的功能時,卻遇上一點小問題
    2012-11-11
  • VS2015+Qt5+OpenCV3開發(fā)環(huán)境配置

    VS2015+Qt5+OpenCV3開發(fā)環(huán)境配置

    這篇文章主要為大家詳細介紹了VS2015+Qt5+OpenCV3開發(fā)環(huán)境配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • .NET Core2.1如何獲取自定義配置文件信息詳解

    .NET Core2.1如何獲取自定義配置文件信息詳解

    這篇文章主要給大家介紹了關(guān)于.NET Core2.1如何獲取自定義配置文件信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評論

禹州市| 淄博市| 夏津县| 宜宾县| 久治县| 瑞丽市| 略阳县| 静宁县| 沧州市| 景谷| 芮城县| 万载县| 竹溪县| 苍溪县| 铜山县| 中卫市| 资兴市| 河南省| 胶南市| 休宁县| 台南县| 章丘市| 巴马| 唐河县| 沁水县| 格尔木市| 马边| 华池县| 铜山县| 富源县| 牙克石市| 叙永县| 柳河县| 商丘市| 昭苏县| 威信县| 竹北市| 全椒县| 田东县| 绥德县| 万全县|