国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# 一個WCF簡單實例

2019-10-29 21:48:30
字體:
來源:轉載
供稿:網友
以訂票為例簡單應用wcf程序,需要的朋友可以參考下
 
 
WCF實例(帶步驟) 
復制代碼代碼如下:

<xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 


本篇轉自百度文檔,自己試過,確實可以用。 

以訂票為例簡單應用wcf 

新建一個wcf服務應用程序

C# 一個WCF簡單實例


在IService1.cs定義服務契約 
復制代碼代碼如下:

namespace WcfDemo 

// 注意: 如果更改此處的接口名稱 "IService1",也必須更新 Web.config 中對 "IService1" 的引用。 
[ServiceContract] // 服務合同 即提供服務的接口或類 
public interface IService1 

[OperationContract] 
/* 增加車票的方法*/ 
void AddTicket(int count); 
[OperationContract] 
/*購買車票的方法*/ 
int BuyTickets(int Num); 
[OperationContract] //服務契約 即提供服務的實現方法 
/*查詢車票的方法*/ 
int GetRemainingNum(); 
// 任務: 在此處添加服務操作 

// 使用下面示例中說明的數據約定將復合類型添加到服務操作。 
[DataContract] //數據契約 
public class Ticket 

bool boolCount = true;//判斷是否還有車票 
int howmany = 10;//還有多少車票 
[DataMember] 
/*判斷是否還有票*/ 
public bool BoolCalue 

get { return boolCount; } 
set { 
if (HowMany > 0) 

boolCount = false; 

else 

boolCount = true; 



[DataMember] 
/*返回票數*/ 
public int HowMany 

get { return howmany; } 
set { howmany = value;} 



在Service1.svc中實現契約服務 
復制代碼代碼如下:

namespace WcfDemo 

// 注意: 如果更改此處的類名“Service1”,也必須更新 Web.config 和關聯的 .svc 文件中對“Service1”的引用。 
public class Service1 : IService1 

Ticket T=new Ticket(); 
/*實現添加票數的方法*/ 
public void AddTicket(int count) 

T.HowMany=T.HowMany+count; 

/*實現返回票數的方法*/ 
public int GetRemainingNum() 

return T.HowMany; 

/*實現購買車票的方法*/ 
public int BuyTickets(int Num) 

if (T.BoolCalue) 

T.HowMany = T.HowMany - Num; 
return 1; 

else 

return 0; 




添加宿主程序用于監測服務 
添加WinForm項目加入解決方案 
界面如下圖: 
C# 一個WCF簡單實例

界面上兩個按鈕: 
啟動服務按鈕: 用于啟動wcf服務 
停止服務按鈕: 用于停止wcf服務 
Label: 用于顯示服務相關信息 
后臺代碼為: 
應用命名空間 using System.ServiceModel; 
添加引用 wcf服務生成的dll文件 
復制代碼代碼如下:

public partial class Form1 : Form 

public Form1() 

InitializeComponent(); 

ServiceHost host = null;//定義 ServiceHost 
private void button1_Click(object sender, EventArgs e) 

host = new ServiceHost(typeof(WcfDemo.Service1));//WcfDemo.Service1 為引用的dll中的服務 
host.Open();//啟動服務 
this.label1.Text = "服務已啟動"; 


private void button2_Click(object sender, EventArgs e) 

if (host.State != CommunicationState.Closed)//判斷服務是否關閉 

host.Close();//關閉服務 

this.label1.Text = "服務已關閉"; 


接下來配置app.config 
復制代碼代碼如下:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<system.serviceModel> 
<services><!--添加服務--> 
<service name="WcfDemo.Service1" behaviorConfiguration="CalculatorServiceBehavior"> 
<!--name 必須與代碼中的host實例初始化的服務一樣 
behaviorConfiguration 行為配置 --> 
<host> 
<baseAddresses> 
<!--添加調用服務地址--> 
<add baseAddress="http://localhost:8000/"/> 
</baseAddresses> 

</host> 
<!--添加契約接口 contract="WcfDemo.IService1" WcfDemo.IService1為契約接口 binding="wsHttpBinding" wsHttpBinding為通過Http調用--> 
<endpoint address="" binding="wsHttpBinding" contract="WcfDemo.IService1"></endpoint> 
</service> 

</services> 
<!--定義CalculatorServiceBehavior的行為--> 
<behaviors> 
<serviceBehaviors> 
<behavior name="CalculatorServiceBehavior"> 
<serviceMetadata httpGetEnabled="true"/> 
<serviceDebug includeExceptionDetailInFaults="false"/> 

</behavior> 

</serviceBehaviors> 

</behaviors> 
</system.serviceModel> 
</configuration> 

程序運行結果: 
C# 一個WCF簡單實例
在服務啟動后可通過appConfigbaseAddress節點中的baseAddress地址查看Wcf服務
C# 一個WCF簡單實例


到這服務以及服務主機都已經創建好了下面該創建測試客戶機了!
新建個WinForm程序做為我們的測試客戶機
界面兩個按鈕一個label

C# 一個WCF簡單實例


購買車票:調用wcf服務的BuyTickets()方法
查詢車票:調用wcf服務的GetRemainingNum()方法
label用于顯示運行信息
為項目添加服務引用 地址輸入服務主機appconfigbaseAddress地址點擊前往(添加服務引用時一點是在服務啟動狀態下的)

C# 一個WCF簡單實例
后臺代碼為: 
復制代碼代碼如下:

public partial class Form2 : Form 

public Form2() 

InitializeComponent(); 

ServiceReference1.Service1Client TClient = new WinFormsClient.ServiceReference1.Service1Client(); 
//聲明客戶端調用 
private void button1_Click(object sender, EventArgs e) 

int i = TClient.BuyTickets(2); //調用WCF中的方法 
if (i == 1) 

this.label1.Text = "購買成功"; 

this.label1.Text += "剩余車票還有" + TClient.GetRemainingNum().ToString(); 

private void button2_Click(object sender, EventArgs e) 

this.label1.Text = ""; 
this.label1.Text = TClient.GetRemainingNum().ToString();//調用WCF中的方法 


點擊購買車票時調用wcf的BuyTicket()方法并返回剩余車票的信息 
點擊查看車票時調用wcf的GetRemainingNum()得到剩余車票信息 
運行結果如下: 
點擊購買車票: 
C# 一個WCF簡單實例


點擊查詢票數時:
 

C# 一個WCF簡單實例

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平罗县| 聂荣县| 溧阳市| 濉溪县| 古交市| 闸北区| 龙南县| 长海县| 乌兰县| 衡山县| 通州区| 阿鲁科尔沁旗| 威宁| 磴口县| 富裕县| 鸡西市| 灵石县| 洞头县| 娱乐| 扬州市| 大邑县| 额济纳旗| 章丘市| 营山县| 新田县| 平阳县| 昌都县| 巴彦淖尔市| 彭阳县| 商丘市| 奇台县| 项城市| 莫力| 长乐市| 江孜县| 西青区| 托克托县| 兰溪市| 施甸县| 镇康县| 新竹市|