|
前面兩篇(《服務(wù)如何能被”發(fā)現(xiàn)”》和《客戶端如何能夠“探測(cè)”到可用的服務(wù)?》)我們分別介紹了可被發(fā)現(xiàn)服務(wù)如何被發(fā)布,以及客戶端如果探測(cè)可用的服務(wù)。接下來我們通過一個(gè)簡(jiǎn)單的例子來演示如果創(chuàng)建和發(fā)布一個(gè)可被發(fā)現(xiàn)的服務(wù),客戶端如何在不知道服務(wù)終結(jié)點(diǎn)地址的情況下動(dòng)態(tài)探測(cè)可用的服務(wù)并調(diào)用之。該實(shí)例的解決方案采用如下圖所示的結(jié)構(gòu),即包含項(xiàng)目Service.Interface(類庫(kù))、Client(控制臺(tái)應(yīng)用)和Service(控制臺(tái)應(yīng)用)分別定義服務(wù)契約、服務(wù)(包括服務(wù)寄宿)和客戶端程序。[源代碼從這里下載,DynamicEndpoint方式進(jìn)行服務(wù)調(diào)用源代碼從這里下載]。
目錄
步驟一、創(chuàng)建服務(wù)契約和服務(wù)
步驟二、寄宿服務(wù)
步驟三、服務(wù)的“動(dòng)態(tài)”調(diào)用
DynamicEndpoint
步驟一、創(chuàng)建服務(wù)契約和服務(wù)
第一個(gè)步驟自然是在Service.Interface項(xiàng)目中定義代表服務(wù)契約的接口。我們還是采用屬性的計(jì)算服務(wù)的例子,為此我們定義了如下一個(gè)ICalculator接口。
using System.ServiceModel;
namespace Artech.ServiceDiscovery.Service.Interface
{
[ServiceContract(Namespace="http://www.artech.com/")]
public interface ICalculator
{
[OperationContract]
double Add(double x, double y);
}
}
NET技術(shù):[WCF-Discovery] 實(shí)例演示:如何利用服務(wù)發(fā)現(xiàn)機(jī)制實(shí)現(xiàn)服務(wù)的“動(dòng)態(tài)”調(diào)用?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。