Sunday, March 8, 2015

创建WCF web服务并使用WPF调用

1. 新建WCF application
2. 删除系统生成的两个文件IService1.cs与Service1.svc(或者自己重命名,在系统生成的基础文件中进行编码,此处感觉重命名麻烦,于是选择删除–新建)
3. 添加自定义的WCF【服务文件】Test.svc, 此时vs会自动生成WCF接口文件ITest.cs
接口文件ITest.cs
namespace WCFServiceDemo
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“ITest”。
[ServiceContract]
public interface ITest
{
[OperationContract]
int Square(int num);
}
}  主类文件Test.svc.cs
namespace WCFServiceDemo
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Test”。
public class Test : ITest
{
public int Square(int num)
{
return num*num;
}
}
}
4. F5运行, 可得到服务地址 http://localhost:11471/Test.svc
不可退出,必须保持run的状态




5. 现在新建客户端程序,使用WPF,首先添加reference 就是上面的服务地址
http://localhost:11471/Test.svc?wsdl


6. 在wpf主界面添加一个文本框和按钮
按钮的点击代码如下:

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            WCFClient2.WCFService.TestClient tc = new WCFService.TestClient();
            int x=0;
            try {x = Convert.ToInt32(textbox1.Text); }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                return;
            }
           int result = tc.Square(x);
            MessageBox.Show("result= "+result);
        }


结果如下:

注意:wcf服务的调用使用普通网页调用需要更多的设置,WCF的使用在网站服务用处很大,需要更多的学习,感觉asp.net在中小型服务中使用比java方便
另外,exception 后面不能使用e变量,改成了ex

No comments:

Post a Comment