近幾天忙於一些事情,沒有更新部落格,灰常抱歉。
我們知道,wcf服務端是先定義服務協定,其實就是乙個介面,然後通過實現介面來定義服務類。那麼,有乙個問題,如果乙個服務類同時實現n個介面(也就是有n個協定)呢?結果會如何?
不必猜,我們還是通過實驗來說明吧。
首先,參照下面**寫好伺服器端,**中,我寫了三個協定,然後乙個服務類同時實現它們。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.servicemodel;
using system.servicemodel.description;
namespace server
[servicecontract]
public inte***ce iservice2
[servicecontract]
public inte***ce iservice3
/// /// 實現服務協定介面的服務類
///
class myservice:iservice1,iservice2,iservice3
catch (exception ex)
console.readkey();
host.close();}}
string iservice1.sayhelloa()
string iservice2.sayhellob()
string iservice3.sayhelloc()}}
接著你試一下,在客戶端引用服務,看看是什麼樣的?
神了,這是怎麼回事呢?為什麼客戶端引用的服務中只有第乙個協定?
還記得剛才的伺服器端**嗎?請注意看我框起來的**。
如果你上圖中能找到原因,表明你悟性不錯,呵呵。
注意我們新增終結點的時候,addserviceendpoint方法的第乙個引數我們傳了啥玩意兒進去了?是不是只有第乙個服務協定的介面?
是啊,這上好理解了,
我們僅僅讓服務類實現多個協定的介面是不夠的,還要把希望對客戶端公開的協定新增為終結點,對,乙個協定乙個終結點,不新增終結點的協定就不公開。
好了,現在找到原因了,**知道怎麼改了。
}看看這回達到目的了沒?
嘿,這回全有了。
不過,注意啊,在生成的客戶端**類中,是按協定來劃分的,也就是說,我有三個協定,在客戶端**中就生成了三個客戶端類。
所以,在客戶端,我們應該這樣呼叫。
傳說中的MTU
通訊術語 最大傳輸單元 maximum transmission unit,mtu 是指一種通訊協議的某一層上面所能通過的最大資料報大小 以位元組為單位 最大傳輸單元這個引數通常與通訊介面有關 網路介面卡 串列埠等 網際網路協議允許ip分片,這樣就可以將資料報分成足夠小的片段以通過那些最大傳輸單元小...
傳說中的truncate html
學習用rails做blog的時候要用到rails的truncate功能。h truncate post.content,100,問題來了,將html截斷後出現不完整的tag,導致後續的文章排版都錯亂了。本來考慮是不是自己寫乙個,正在思考思路,結果祭起google,好嗎,已經有牛人寫了 簡單記錄一下 ...
傳說中的分頁6
set quoted identifier off goset ansi nulls on go 名稱 分頁儲存過程 使用示例 exec sp pageindex from stusources 2,10 注意 目前還沒有對輸入的引數進行嚴格的驗證 預設為輸入都是合法有效的 alter proc s...