依賴注入容器 Castle windsor的使用

       在Castle中包含了一組開發框架,它裏面的IOC容器是Windsor。在Windsor中提出了自動裝配的概念,由容器來自動管理組件之間的依賴關係,無需用戶去編寫XML配置文件或者經過Attribute來指定容器之間的依賴關係。這樣在使用上很是的簡單,同時也帶了一些問題,做爲開發人員的咱們沒法控制組件的依賴關係。c#

       簡單使用:
框架

              1.添加Castle.Core.dll,Castle.Windsor兩個引用。函數

              2.建立被用於注入的接口和其實現。
spa

              3.在程序的入口處(winform在Main函數下,Web Application在Application_start()下)添加以下代碼code

            IWindsorContainer container = new WindsorContainer();
            
            //下面爲你要註冊的組件,即注入容器的配置。
            
            //「WindowsFormsApplication1」 爲程序集名稱,Form爲要註冊類的基類
            container.Register(AllTypes.FromAssemblyNamed("WindowsFormsApplication1")
                                       .BasedOn<Form>().WithService.DefaultInterfaces());
                                       
            //「Tasks」爲你的程序集名稱,「Service」爲你的「IService」接口的實現類
            container.Register(AllTypes.FromAssemblyNamed("Tasks").Pick()
                                       .If(t => t.Name.EndsWith("Service"))
                                       .WithService.DefaultInterfaces());

             4.在調用出實現注入,並調用。
orm

                    1)屬性/Setter注入:               接口

        public ITestService TestService { get; set; }
        
        TestService.GetMethod();//調用TestService中的GetMethod()方法

                    2)構造器注入:開發

    public partial class Form1 : Form
    {
        private ITestService _service;

        public Form1(ITestService testService)
        {
            InitializeComponent();

            _service = testService;
            _service.GetMethod();//調用TestService中的GetMethod()方法
        }
    }
相關文章
相關標籤/搜索