如何快速實現(xiàn)WCF單向服務(wù)
WCF服務(wù)的應(yīng)用,需要我們通過不斷地實踐去積累應(yīng)用技巧來達(dá)到一個熟練應(yīng)用的地步。那么首先還是需要我們從基礎(chǔ)的知識開始。今天就先一起來了解一下有關(guān)WCF單向服務(wù)的基本創(chuàng)建方式。#t#
1、打開Visual Studio 2008。
2、新建項目 à 選擇項目類型:Visual C#下的WCF à WCF服務(wù)庫(WCF Service Library) à 確認(rèn)項目名稱以后,點擊“確定”。(該Sample中使用WcfServiceLibrary1作為項目的名稱)
3、打開IService1.cs文件,并修改其中的內(nèi)容,完整的WCF單向服務(wù)創(chuàng)建代碼如下所示。
- using System.Runtime.Serialization;
- using System.ServiceModel;
- namespace WcfServiceLibrary1
- {
- [ServiceContract]
- public interface IService1
- {
- [OperationContract]
- string GetData(int value);
- [OperationContract]
- CompositeType GetDataUsingDataContract(CompositeType composite);
- [OperationContract(IsOneWay=true)]
- void TestMethod(string paraInput); // 單向服務(wù)不允許有返回值
- }
- [DataContract]
- public class CompositeType{
- bool boolValue = true;
- string stringValue = "Hello ";
- [DataMember]
- public bool BoolValue
- {
- get { return boolValue; }
- set { boolValue = value; }
- }
- [DataMember]
- public string StringValue
- {
- get { return stringValue; }
- set { stringValue = value; }
- }
- }
- }
4、打開Service1.cs,并修改其中的內(nèi)容,完整代碼如下所示。
- namespace WcfServiceLibrary1
- {
- public class Service1 : IService1
- {
- public string GetData(int value)
- {
- System.Threading.Thread.Sleep(5000); // 單向服務(wù)的對比測試方法
- return string.Format("You entered: {0}", value);
- }
- public CompositeType GetDataUsingDataContract(CompositeType composite)
- {
- if (composite.BoolValue)
- {
- composite.StringValue += "Suffix";
- }
- return composite;
- }
- public void TestMethod(string paraInput)
- {
- System.Threading.Thread.Sleep(5000); // 單向服務(wù)的測試方法
- }
- }
- }
5、生成WCF單向服務(wù)項目。
6、添加一個Windows窗口程序。
7、為Windows窗口程序添加一個服務(wù)引用 à 在“添加服務(wù)引用”窗口中點擊“發(fā)現(xiàn)”就顯示出本機(jī)模擬的一個WCF服務(wù)程序 à 點擊“確定”,將其添加到程序中。
8、在窗口中添加一個按鈕à在按鈕事件中添加如下代碼。
- ServiceReference1.Service1Client sc = new
WindowsFormsApplication1.ServiceReference1.Service1Client();- MessageBox.Show(sc.GetData(3));
9、在窗口中再添加一個按鈕,做對比試驗à在按鈕事件中添加如下代碼:
- ServiceReference1.Service1Client sct =
new WindowsFormsApplication1.ServiceReference1.Service1Client();- sct.TestMethod("這是一個單項服務(wù)傳遞的測試");
10、實例代碼編寫完成,運行程序查看效果。
點擊按鈕1:需要等待5秒鐘后才接受到從服務(wù)器端傳回的值。
點擊按鈕2:無需等待服務(wù)器端應(yīng)答。
以上就是我們?yōu)榇蠹医榻B的WCF單向服務(wù)的所有創(chuàng)建步驟。