[WCF]WCF起航

解决方案概览:

Client:windows 控制台应用程序。
WcfService1: windows 服务应用程序。
WCFWebTest:asp.net 空web应用程序。

 

变量程序命名、结构可能不是那么规范,重点在与说明问题。


 

  1. 建立WCF服务项目。

在解决方案上面点右键->添加->新建项目->wcf服务应用程序(图标是齿轮带3个小箭头)。

删掉自动生成的服务和协议。

  1. 添加服务。

在wcf服务项目上点右键,点添加->新建项->wcf服务。本例中建立了两个服务,User.svc 和Animal.scv。建立服务后,会自动生成对应的协议(接口),IUser、IAnimal.

  1. 测试方法创建。

    在IUser中,定义一个方法接口。ShowName,用来接收一个字符串,返回一个字符串。

    [ServiceContract]
    public interface IUser
    {
        [OperationContract]
        string ShowName(string name);
    }
IUser

    在IAnimal中,定义一个方法接口。DoWork,也用来接收一个字符串,返回一个字符串。

[ServiceContract]
    public interface IAnimal
    {
        [OperationContract]
        string DoWork(string a);
    }
IAnimal

    记得在方法前面增加

[OperationContract]

    在Animal.scv 和User.svc 中分别实现接口方法。

    public class User : IUser
    {
        #region IUser 成员

        public string ShowName(string name)
        {
            return string.Format("Test:{0}", name);
        }

        #endregion
    }
User
public class Animal : IAnimal
    {
        public string DoWork(string a)
        {
            return string.Format("Animal Test:{0}", a);
        }
    }
Animal
  1. 测试实例调用。
 1  static void Main(string[] args)
 2         {
 3             string a = Console.ReadLine();
 4              
 5             //根据建议,也这么实例化一个
 6             SRUserWSDL.UserClient b = new SRUserWSDL.UserClient();
 7 
 8             //调用方法
 9             a = b.ShowName(a);
10             //关闭连接 
11             b.Close();
12             //将返回的结果展示在屏幕上 
13             Console.WriteLine(a);
14 
15             a = Console.ReadLine();
16 
17             //实例化一个参数更改的方式
18             //Service在本地建立的时候,可能是localhost,但是发布的时候,该ip地址可能会发生变化。
19             //BasicHttpBinding_IAnimal 这个字段来自 客户端(调用端) 的config里面。而不是WCF服务的服务段的config里面
20             AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc");
21 
22             a = c.DoWork(a);
23 
24             c.Close();
25 
26             Console.WriteLine(a);
27 
28             a = Console.ReadLine();
29 
30             //另一种连接地址变化的方法
31             AnimalService.AnimalClient d = new AnimalService.AnimalClient();
32 
33             d.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://192.168.159.142/WcfService1/Animal.svc"); 
34 
35             a = d.DoWork(a);
36             d.Close();
37 
38             Console.WriteLine(a);
39 
40             Console.ReadKey();
41         }
winform端调用
1  protected void Page_Load(object sender, EventArgs e)
2         {
3             AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc");
4 
5             Response.Write(c.DoWork("webtest"));
6             Response.Flush();
7         }
web端调用
  1. 调用结果

winform端:

web端:


 

后续如果还有进一步发现或者问题修改还会继续补充。

转载于:https://www.cnblogs.com/Xuhaiyang/p/4250093.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值