新聞中心
現(xiàn)在,我們將了解更多傳統(tǒng)的WCF服務實現(xiàn),并且我們也將了解如何通過ASP.NET AJAX向外暴露該服務。默認情況下,當我們創(chuàng)建類庫工程時,對于需要運行的WCF系統(tǒng)不會添加服務模型和對運行時序列化的支持。因此,我們不得不添加必要的服務引用。

繼續(xù)并點擊類庫工程鼠標右鍵然后選擇添加引用,再選擇如下引用:
◆System.Runtime.Serialization
◆System.ServiceModel
在本階段,我們將使用一個TODO管理示例來演示整個過程。添加一個基于數(shù)據(jù)庫的服務然后創(chuàng)建一個帶有字段為ID, Description和Status 的標TODO?,F(xiàn)在,從項目模板中添加一個LINQ to SQL的類文件。從數(shù)據(jù)庫中拖拽TODO表到LINQ to SQL類文件設計器上。
現(xiàn)在添加設計器表面并從屬性窗口改變序列化模式為單向的?,F(xiàn)在,我們的設計器就生成了可以供WCF使用的LINQ to SQL類。如果你想使用自定義用戶定義類型,你必須為你的類設置[DataContract]特性并且你必須為你想暴露的WCF服務類的每個屬性添加 [DataMember]特性。
現(xiàn)在,我們將添加一個如下形式的服務接口:
- namespaceServiceLibrary
- {
- [ServiceContract(Namespace="ServiceLibrary")]
- interfaceIToDoService
- {
- [OperationContract]
- ToDoGetToDo(longID);
- [OperationContract]
- ToDoAddToDo(ToDotoDo);
- [OperationContract]
- boolDeleteToDo(ToDotodo);
- [OperationContract]
- ToDoUpdateToDo(ToDotodo);
- [OperationContract]
- List
GetAllToDo(); - }
- }
注意,在ServiceContract 接口特性中我們已經(jīng)提到的一個命名空間。這點非常重要。我們將使用該名字作為服務的名稱以便內(nèi)部的JavaScript代碼訪問該服務。現(xiàn)在,我們將添加實現(xiàn)該服務的接口;其代碼如下。
請注意代碼中在類特性上所使用的[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]特性;這對于以ASP.NET AJAX啟用WCF服務暴露的方式是必須的。
- namespaceServiceLibrary
- {
- [AspNetCompatibilityRequirements(RequirementsMode=
- AspNetCompatibilityRequirementsMode.Allowed)]
- publicclassToDoService:IToDoService
- {
- #regionIToDoServiceMembers
- publicToDoGetToDo(longID)
- {
- DataClasses1DataContextcontext=newDataClasses1DataContext();
- vartoDos=frompincontext.ToDos
- wherep.ID==ID
- selectp;
- List
listTodos=toDos.ToList(); - if(listTodos!=null&&listTodos.Count>0)
- {
- returnlistTodos[0];
- }
- else
- {
- returnnull;
- }
- }
- #endregion
- }
- }
以上是ASP.NET AJAX的WCF服務
本文題目:ASP.NETAJAX的WCF服務
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/ccecese.html


咨詢
建站咨詢
