entlib 5.0學習筆記 在asp.net中使用unity

來源:互聯網
上載者:User

1. asp.net整合unity樣本

2. 範例程式碼下載

1. asp.net整合unity樣本

1.1 添加引用,如下:

 

1.2  在Default.aspx頁面中添加Dependency屬性標籤,表明該屬性是通過依賴注入來產生。如下:

 private IStockQuoteService stockQuoteService;

        // 添加屬性標籤,表明的是需要注入屬性        [Dependency]        public IStockQuoteService StockQuoteService        {            get { return stockQuoteService; }            set { stockQuoteService = value; }        }

 1.3 添加Global.asax檔案,在Application_Start中建立UnityContainer,並在Application_End函數中將UnityContainer銷毀掉。

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.SessionState;namespace StocksTicker{    using Microsoft.Practices.Unity;    using Microsoft.Practices.Unity.Configuration;    using System.Web.Configuration;    using System.Web.UI;    public class Global : System.Web.HttpApplication    {        private const String AppContainerKey = "application container";        private IUnityContainer ApplicationContainer        {            get            {                return (IUnityContainer)this.Application[AppContainerKey];            }            set            {                this.Application[AppContainerKey] = value;            }        }        protected void Application_Start(object sender, EventArgs e)        {            // 在這裡建立一個container            IUnityContainer applicationContainer = new UnityContainer();            applicationContainer.LoadConfiguration("application");            ApplicationContainer = applicationContainer;        }            protected void Application_End(object sender, EventArgs e)        {            //  銷毀container            IUnityContainer applicationContainer = this.ApplicationContainer;            if (null != applicationContainer)            {                applicationContainer.Dispose();                this.ApplicationContainer = null;            }        }        // 這裡實現攔截注入,在頁面中實現注入        protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)        {            Page handler = HttpContext.Current.Handler as Page;            if (null !=handler )            {                IUnityContainer container = this.ApplicationContainer ;                if ( null != container )                {                    container.BuildUp(handler.GetType(), handler);                }            }        }    }

1.4 修改web.xml檔案,增加配置節點configSection和向container中註冊類型,詳細資料參考這裡

 <section name="unity"              type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

 <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">

    <alias alias="TraceSource" type="System.Diagnostics.TraceSource, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>    <alias alias="ILogger" type="StocksTicker.Loggers.ILogger, StocksTicker"/>    <alias alias="TraceSourceLogger" type="StocksTicker.Loggers.TraceSourceLogger, StocksTicker"/>    <alias alias="IStockQuoteService" type="StocksTicker.StockQuoteServices.IStockQuoteService, StocksTicker"/>    <alias alias="MoneyCentralStockQuoteService" type="StocksTicker.StockQuoteServices.MoneyCentralStockQuoteService, StocksTicker"/>    <container name="application">      <register type="ILogger" mapTo="TraceSourceLogger">        <lifetime type="singleton"/>        <constructor>          <param name="traceSourceName">            <value value="default"/>          </param>        </constructor>      </register>            <register type="IStockQuoteService" mapTo="MoneyCentralStockQuoteService">        <lifetime type="singleton"/>        <property name="Logger"/>      </register>    </container>  </unity>

完成asp.net和unity的整合工作。 

2. 範例程式碼下載 

 /Files/xuqiang/entlib/ASPNetStocksTicker.rar

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.