WCF service 的建立和使用

我的使用环境:

1.    IDEvs2010 beta2.

2.    我的WCF service 是通过c# website  WCF service建立起来的,这样可以省掉很多事。

3.    建立一个client端,就是模拟用户用service的,我用的是window forms application,win form 3label控件,1textbox控件和一个button控件。给button加上button1_Click事件。

4.   设置你的win form项目为起始项目。

 

好,一切就绪。开始测试使用。

1.    首先把默认的(模板提供的)数据结构用上:

(1)  单独编译web wcf service .

(2)  你的win formservice reference,(project name点右键,add service reference)

(3)  在弹出的add service reference窗口里点击discover ,vs会找可用的service,找到后会再Services 窗口里列出来,选择你要的加载的service,然后click ok.

(4)  在你的solution explorer里,可以发现service references节点下有你的service.现在你就可以用来自你的web service的服务了.

(5)  给你的win from里的button1_Click事件添加代码如下代码:

                  ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();

                  string ss;

                  ss = client.GetData(this.textBox1.Text);

                  this.label1.Text = ss;        

     

                  ServiceReference1.CompositeType ct = new ServiceReference1.CompositeType();

                  ct.StringValue = "^_^";

                  ct.BoolValue = true;

                  ct= client.GetDataUsingDataContract(ct);

        

                  this.label2.Text = ct.StringValue;

 

(6)  运行程序,在textbox里输入值,点按钮。Label1label2的值就变化,显示的是服务返回的结果。

2.    新增数据结构的使用

(1)  Iservice.cs里添加新的数据结构:

                 [DataContract]

                 public class testlog

                 {

                       string data;   

                       [DataMember]

                        public string Data

                         {

                           get

                           {

                            return this.data;

                           }

                           set

                           {

                            data = value;

                           }

                        }

            BTW:要避免使用带参构造函数,因为WCF只能使用默认构造函数

(2)  Iservice.cs新增方法:(IService接口里)

                 [OperationContract]

                 testlog gettestlog(testlog testlog);

(3)  Service.cs里增加对新增数据结构的使用:(Service类增加方法)

                 public testlog gettestlog(testlog testlog)

                          {

                           testlog.Data="/nMethod is running!/n";

                                   return testlog;      

                         }

(4)  重新编译你的service,然后在把1.2-1.4做一次,如果不重新绑定,win form使用的就还是老的,他没有自动更新功能。

(5)  给你的 button1_Click事件增加方法:

                  ServiceReference1.testlog t=new ServiceReference1.testlog();

                  this.label3.Text = client.gettestlog(t).Data;

(6)  运行程序,在textbox里输入值,点击button,就可以看到结果了。

 

 

 

 

 

 

 

 

   

         

 

 

 

你可能感兴趣的:(数据结构,service,button,reference,WCF,textbox)