程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 解決ObjectDataSource不能依賴注入NHibernate實體問題

解決ObjectDataSource不能依賴注入NHibernate實體問題

編輯:C#入門知識

用ObjectDataSource和GridView一類的服務器控件,確實可以做到很oop(不過個人更喜歡和Repeater綁定,就是有些麻煩,這個很快)

但如果在多層框架中應用需要用到依賴注入,ObjectDataSource需要綁定到接口上。

 ObjectDataSource只支持類,不能實例化接口。這樣就會導致多層結構的依賴性。

 

google半天,終於找到,只要如下使用就可以了。
 

 

        protected IBLLTestUser  bll = BLLFactory.Create("IBLLTestUser") as IBLLTestUser;
 

        protected void odsTestUser_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
        {
            e.ObjectInstance = bll;
        } 

 這樣就可以傳入實例了。但界面綁定還是需要調用原始類才能自動生成界面元素,有點不爽,不過這個影響不大,因為下層變化了,只要注入就可以了,和原來的沒關系,只是方便頁面綁定生成。和ilist<t>這樣的NHibernate實體一道使用可以自動生成\\gridview的界面字段。下面是可以生成GridView全部功能,包括分頁,修改,刪除,排序時的ObjectDataSource的設置。
 

\\
 

 

未使用 ObjectDataSource前GridView,只能手工綁定,相當麻煩,使用ObjectDataSource後GridView對應的NHibernate實體屬性就自動帶出來了,如下圖對比。
 

 

 \

 

\ 

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved