強類型ASP.NET數據綁定改進版之第2版

作者: dudu  來源: 博客園  發布時間: 2011-01-31 13:04  閱讀: 938 次  推薦: 0   原文鏈接   [收藏]  

  相關文章:教你30秒打造強類型ASP.NET數據綁定強類型ASP.NET數據綁定改進版

  之前的方法存在一個問題:

Ivony...說:“每個類型都去寫個Eval方法也很不爽的。”

Kingthy說:“這樣就到處有Func了,會不會太過頭了?”

李永京說:“在項目中任何地方都要使用的方法,應該收集在Core級別的Dll中寫成擴展方法。”

  如果用擴展方法解決這個問題,我們將面臨新的問題,請看擴展方法:

 
public static class Binder
{

public static TResult Eval<TEntity, TResult>(this System.Web.UI.Page p,
Func
<TEntity, TResult> func)
{

return func((TEntity)p.GetDataItem());
}
}

  這個問題就是在調用時,需要指定返回類型,比如:

 
<%# this.Eval<NewsInfo, string>(n => n.Title) %>

  可以采用另外一種方法解決這個問題,代碼如下:

 
public static class Binder<TEntity> where TEntity : class
{
public static TResult Eval<TResult>(System.Web.UI.Page p,
Func
<TEntity, TResult> func)
{

return func((TEntity)p.GetDataItem());
}
}

  調用代碼如下:

 
<%# Binder<NewsInfo>.Eval(this, n => n.Title) %>

  還有更好的解決方法嗎?我目前只能找到這個方法,我覺得理想的調用方法應該是:

 
<%# Eval<NewsInfo>(n => n.Title)%>
0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()