wcf服務開發與呼叫的完整示例
開發工具:vs2008
開發語言:c#
開發內容:簡單的許可權管理系統
第一步、建立wcf服務庫
點選確定,將建立乙個wcf 服務庫示例程式,自動生成乙個包括iservice1.cs和service1.cs兩個類檔案。我們可以直接對其修改開發我們的服務,但一般直接刪除。
第二步:開發實體類
在解決方案中,新增新類module.cs
在類中要首先引入using system.runtime.serialization命名空間
實體類具體**如下:
namespace wcfservicelib.model
}為使在wcf服務被呼叫過程中科被序列化,在實體類前加[datacontract]標籤,實體類每個成員前加[datamember]標籤
第三步:建立wcf服務介面
wcf服務要對外提供服務,需要建立服務的介面,宣告對外服務的內容。
在解決方案中新增新的介面類imoduleservice.cs,然後引入名門空間using system.servicemodel;
具體**如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.servicemodel;
using wcfservicelib.model;
namespace wcfservicelib.iservice
}介面類前要加[servicecontract]標籤,每個成員前要加[operationcontract]標籤,標籤的作用是保證外部呼叫可以訪問到該方法。
第四步:介面類的實現
實現第三步中宣告的介面類,只有這樣wcf服務才會正在提供服務。
在解決方案中新增介面實現類moduleservice,引入命名空間using system.servicemodel;
具體**如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using wcfservicelib.iservice;
using system.servicemodel;
using wcfservicelib.model;
namespace wcfservicelib.service
public module getmodulebyid(string id)
public void removemodule(string id)
public void moduleupdate(module module)
#endregion
}
}到此為止,wcf服務的主體就開發完成了,那麼如何才可以讓呼叫者使用這個服務呢?我們就需要吧wcf服務註冊並發布一下。
第五步:wcf服務發布
在vs2008以上的版本中都提供了對wcf服務視覺化註冊和發布的工具。
出現如下介面:
可以看到有兩個終結點,第乙個是服務節點,第二個是元資料節點。由於我們是用vs自帶的服務庫專案來建立的,配置檔案中還沒有刪除這些資訊,所以第乙個節點裡還保留著自帶的服務資訊iservice.下面我們把這個服務更改為我們上文編寫的服務的資訊。
單擊左側的「services」-「services.service1」在右側的name,彈出「服務型別瀏覽器」對話方塊,在此型別中我們找到此wcf服務專案編譯出來的dll檔案,雙擊它就可以出現此服務中的對外公布的服務,點選選中它單擊確定。
然後,我們展開左側 「services」->「wcfservicelib.service.moduleservice」->「endpoints」,單擊第乙個「empty name」,從右邊的「emptyproperties」中的contract中我們可以看到,這裡的contract仍然用的是 services.iservice1。按照上文的步驟在走一遍,找到dll後確定。
最後關閉配置視窗,儲存。
到此為止,服務就開發並發布完成了。接下來我們將wcf進行託管後就可以使用了。wcf服務託管有三種方式,最常用的是iis託管。我們看一下wcf服務是如何進行iis託管的。
第六步:wcf服務iis發布
1、在解決方案上右鍵新增**,型別選擇wcf服務。
3、然後新增對wcf服務庫專案的引用。結果如下:
4、然後修改service.svc檔案,**如下:
5、在web.config上右擊選擇「編輯wcf配置」。
關閉wcf編輯工具,儲存即完成了服務的發布配置。
6、在service.svc上右擊,選擇「在瀏覽器中檢視」,在ie中執行此服務。
7、在iis中部署站點,建立虛擬目錄指向該站點。然後瀏覽介面如下。
到此,wcf服務在iis中託管成功。接下來,我們看一下如何使用wcf服務。
第七步:wcf服務的使用
1、新建asp.net應用程式
2、右鍵點選「引用」--->新增服務引用
新增成功後,解決方案中檔案如下:
3、後台呼叫wcf服務,**如下:
protected void page_load(object sender, eventargs e)
}
4、執行程式,出現如下呼叫結果,呼叫成功。
Wcf 可配置的服務呼叫方式
通常,如果採用.net的wcf技術來架構soa風格的應用,我們會把專案做一些基本的分層,如上圖 01.contract層 通常定義服務的介面 即服務契約servicecontract,指明該服務提供了哪些方法可供外部呼叫 以及介面方法中傳輸的model定義 即 資料契約datacontract,指明...
呼叫mpfr的一段示例(極不完整)
char buffer 2048 mp exp t e unsigned int i mpfr t s,t,u mpfr init2 t,200 mpfr set d t,1.0,gmp rndd mpfr init2 s,200 mpfr set d s,1.0,gmp rndd mpfr ini...
客戶端動態呼叫WCF服務中的方法
客戶端呼叫wcf 有時需要動態的呼叫服務端的wcf中的方法,本方法,反射wcf 的介面,動態呼叫介面中的方法。主要為,動態繫結,反射動態呼叫。public static object executemethod string purl,string pmethodname,params object...