• WCF客户端与服务端通信简单入门教程


    服务端

    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         }

    运行下,看下效果:

  • 相关阅读:
    asp.net中的窗体身份验证(不同的角色访问不同的目录)
    asp.net中的窗体身份验证(完整篇之六:登出后不能通过后退回来面来的页面)
    asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式)
    asp.net中的窗体身份验证(完整篇之四:获得用户数据)
    asp.net中的窗体身份验证(完整篇之五:退出登录)
    [iphone]UIImage,CGImage和CGImageRef有什么区别
    glVertexAttribPointer
    在OpenGL中使用着色器的步骤
    glViewport()函数和glOrtho()函数的理解
    OpenGL ES 三种类型修饰 uniform attribute varying
  • 原文地址:https://www.cnblogs.com/qiuyan/p/3265176.html
Copyright © 2020-2023  润新知