摘要:
我們可以在五個(gè)不同的點(diǎn)來定制我們自己的CustomBehavior:ParameterInspection,MessageFormatting,OperationInvoker,MessageInspection,OperationSelector.
Behavior分以下幾種:ServiceBehavior,EndpointBehavior,ContractBehavior,OperationBehavior.
閱讀全文
posted @ 2012-06-25 15:56
Edward.Zhan
閱讀(2014)
推薦(1)
摘要:
這一節(jié)作為表達(dá)式樹的完結(jié)篇,我將上傳一些我寫的案例與做一些總結(jié)。其實(shí)之前我在惠普的COE(Center of Expert)也做過為期2節(jié)的關(guān)于表達(dá)式樹的training,這一節(jié)中的案例也是我那時(shí)training時(shí)寫的。
閱讀全文
posted @ 2012-03-25 17:12
Edward.Zhan
閱讀(2814)
推薦(4)
摘要:
大家應(yīng)該可以理解表達(dá)式樹由body和parameter是2部分組成,然后,方法能實(shí)現(xiàn)的功能表達(dá)式樹都可以實(shí)現(xiàn)。表達(dá)式樹可以用來表示一個(gè)邏輯過程,并且,可以讓用戶傳入parameter.也就是說,表達(dá)式樹可以使邏輯過程獨(dú)立。
所以,在我平時(shí)的項(xiàng)目里面,在一個(gè)應(yīng)用場(chǎng)景下,我會(huì)首先想到使用表達(dá)式樹。
閱讀全文
posted @ 2011-03-26 17:04
Edward.Zhan
閱讀(2117)
推薦(2)
摘要:
我們將一個(gè)表達(dá)式樹比作一輛2輪自行車,那么body就是自行車骨架,parameter就是2個(gè)車輪。
好了,我們可以把上面代碼中的lambd0和lambd1看成2輛雙輪自行車。
我們?cè)诖a中想把這2輛雙輪自行車拼接成一輛3人騎的4輪自行車,所以我們寫了以下代碼:
Expression left = lambd0.Body;
Expression right = lambd1.Body;
注意!這就是問題的關(guān)鍵所在,這里我們只是引用了這2個(gè)自行車的骨架,而不是復(fù)制!我們希望構(gòu)造出的4輪自行車沒有任何骨架,這2句只是說想引用已有的2個(gè)骨架,但問題就來了,已有的自行車骨架還連接著lambd0和lambd1的車輪,并不能被新的自行車所用,我們必須按照已有的骨架復(fù)制出一個(gè)一模一樣的骨架才能被我們的新的4輪自行車所用。
閱讀全文
posted @ 2010-12-06 16:00
Edward.Zhan
閱讀(3949)
推薦(7)
摘要:
到這里我們初窺了表達(dá)式樹的結(jié)構(gòu)。這一篇只是作為一個(gè)我給自己找感覺的引子。最后我想提出一個(gè)問題, 大家從之前一系列的博文中可以看出,構(gòu)建表達(dá)式樹不是一個(gè)很簡(jiǎn)單的事情,那么,在邏輯相似的情況下,我們是否可以訪問并抽取出一個(gè)已有表達(dá)式樹的結(jié)構(gòu)并用這個(gè)結(jié)構(gòu)來構(gòu)建出一個(gè)新的表達(dá)式樹呢?
閱讀全文
posted @ 2010-11-13 17:08
Edward.Zhan
閱讀(2034)
推薦(3)
摘要:
就知識(shí)查詢手冊(cè)這個(gè)層面來說,我相信.net的知識(shí)msdn上沒有查不到的,我只是努力給大家展現(xiàn)我自己的一個(gè)理解和學(xué)習(xí)的過程,把一些知識(shí)以一個(gè)特定的邏輯順序串聯(lián)起來,希望通過我的一些帶有個(gè)人色彩的陳述和表達(dá)使大家能理解和運(yùn)用這些知識(shí)。好了,進(jìn)入正題,上一篇已經(jīng)說過了,這一篇會(huì)寫一些輕松的東西,主要來寫寫表達(dá)式樹的一些案例和應(yīng)用,相對(duì)而言會(huì)比較簡(jiǎn)單。
閱讀全文
posted @ 2010-04-15 16:19
Edward.Zhan
閱讀(3291)
推薦(5)
摘要:
如果給定一個(gè)表達(dá)式樹,CreateQuery 方法可創(chuàng)建新的 IQueryable)) 對(duì)象。返回的對(duì)象所表示的查詢與特定 LINQ 提供程序相關(guān)聯(lián)。大多數(shù)返回可枚舉結(jié)果的 Queryable 標(biāo)準(zhǔn)查詢運(yùn)算符方法將調(diào)用此方法。這些標(biāo)準(zhǔn)查詢運(yùn)算符方法將向此方法傳遞一個(gè)表示 LINQ 查詢的 MethodCallExpression。我來說明白一點(diǎn),這個(gè)方法就是把查詢數(shù)據(jù)源和Expression關(guān)聯(lián)起來。而當(dāng)我們真正foreach數(shù)據(jù)源執(zhí)行查詢操作時(shí),我們調(diào)用的是Execute方法
下面也是MSDN上的資料
Execute 方法會(huì)執(zhí)行那些返回單個(gè)值(而不是值的可枚舉的序列)的查詢。在枚舉包含返回可枚舉結(jié)果的查詢的表達(dá)式樹的 IQueryable)) 對(duì)象時(shí),會(huì)執(zhí)行這些表達(dá)式樹。
返回單一結(jié)果的 Queryable 標(biāo)準(zhǔn)查詢運(yùn)算符方法會(huì)調(diào)用 Execute。這些標(biāo)準(zhǔn)查詢運(yùn)算符方法將向此方法傳遞一個(gè)
閱讀全文
posted @ 2010-03-24 17:37
Edward.Zhan
閱讀(3294)
推薦(4)
摘要:
而言之,Linq能處理的IEnumerable,sql,xml都是關(guān)系型數(shù)據(jù)源,而contain是定義在IEnumerable上的方法,相當(dāng)于對(duì)關(guān)系的一種邏輯,所以Provider可以把它解析成表達(dá)式樹,再直接點(diǎn),當(dāng)IEnumerable中的數(shù)據(jù)源可以表示成一個(gè)關(guān)系時(shí),它的方法就可以被解析成表達(dá)式樹。
閱讀全文
posted @ 2010-02-02 12:50
Edward.Zhan
閱讀(4559)
推薦(4)
摘要:
這篇文章其實(shí)幾天前就打算寫了,但由于這幾天一直忙于各種事務(wù)和工作,所以一直無暇提筆,十分抱歉,和上一篇一樣,在進(jìn)入今天的主題之前先貼上這篇文章一些來自msdn的參考資料。
閱讀全文
posted @ 2010-02-01 11:28
Edward.Zhan
閱讀(6783)
推薦(5)
摘要:
大家好,非常高興能在博客園跟大家分享一下我有限的開發(fā)經(jīng)歷中的一些經(jīng)驗(yàn)心得,首先是跟大家分享下我對(duì)Linq的一些理解,這個(gè)系列中的絕大部分內(nèi)容都是我根據(jù)自己的理解原創(chuàng)的對(duì)一些問題的理解與闡述,所謂原創(chuàng),就是希望大家在讀的過程中如果發(fā)現(xiàn)什么不對(duì)的地方能及時(shí)指出,這對(duì)我本人也是一個(gè)很大的幫助與提高,還有一個(gè)就是非常歡迎大家轉(zhuǎn)載這個(gè)系列的文章,但是希望轉(zhuǎn)載的時(shí)候能注明出處,謝謝
閱讀全文
posted @ 2010-01-28 11:47
Edward.Zhan
閱讀(3274)
推薦(2)