服務端
1.新建空白解決方案,然后再空白解決方案中新建:WCF服務應用程序。建完后如圖:
2.刪掉自動生成的IService1.cs和Service.svc並添加WCF服務文件StudentService.svc,VS會自動生成IStudentService.cs 在添加一個Student類,如圖:
Student.cs:
1 /// <summary> 2 /// DataContract數據約定,保證student類在WCF調用中被序列化 3 /// DataMember 在被序列化的成員變量中必須加 [DataMember]標簽 4 /// </summary> 5 [DataContract] 6 public class Student 7 { 8 [DataMember] 9 public string StudentId { get; set; } 10 [DataMember] 11 public string StudentName { get; set; } 12 }
IStudentService.cs:
1 /// <summary> 2 /// ServiceContract:服務約定,代表我們所能操作的接口集合,提 供功能點。 3 /// OperationContract: 每個對外需要發布的方法都需要加上此標簽 4 /// </summary> 5 [ServiceContract] 6 public interface IStudentService 7 { 8 [OperationContract] 9 List<Student> RemoveStudent(string id); 10 }
StudentService.svc:
1 public class StudentService : IStudentService 2 { 3 4 public List<Student> RemoveStudent(string id) 5 { 6 var students = new List<Student>() { 7 new Student {StudentId="1",StudentName="學生1" }, 8 new Student {StudentId="2",StudentName="學生2" } 9 }; 10 11 var student = students.Find(m => m.StudentId == id); 12 13 students.Remove(student); 14 15 return students; 16 } 17 }
到現在為止我們WCF服務端程序建好了,我們把StudentService.svc設為起始頁,F5運行一下,會彈出來WCF測試客戶端,如圖
雙擊左側的RemoveStudent(),在右側輸入值然后點擊調用,如圖:
結果如我們預料的那樣,StudentId為1的數據被刪掉了。
接下來我們把它部署到IIS上, 在默認文檔里添加StudentService.svc,然后瀏覽,如圖:
客戶端
1.新建空白解決方案,新建ASP.NET WEB應用程序,名稱為WCFClient,添加服務引用,服務引用地址為上圖地址中的
http://localhost:88/StudentService.svc?wsdl
,如圖:
WCFTest.aspx:
1 <form id="form1" runat="server"> 2 <div> 3 <table> 4 <tr> 5 <td> <asp:TextBox ID="txtStudentId" runat="server"></asp:TextBox></td> 6 <td><asp:Button ID="btnSubmint" runat="server" Text="刪除" OnClick="btnSubmint_OnClick"/></td> 7 </tr> 8 </table> 9 10 </div> 11 </form>
WCFTest.aspx.cs:
1 protected void btnSubmint_OnClick(object sender, EventArgs e) 2 { 3 var wcfService = new WCFService.StudentServiceClient(); 4 5 var str = string.Empty; 6 7 wcfService.RemoveStudent(this.txtStudentId.Text.Trim()) 8 .ToList() 9 .ForEach(m =>str += m.StudentId + ":" + m.StudentName); 10 11 Response.Write(str); 12 }
運行下,看下效果: