WCF的簡單例項
申明:
本篇為轉載,寫部落格只是本人的興趣愛好,而且也是記錄學習的一種好的方法,經過本人測試,本部落格真實有效,本人是個小菜鳥,但是學一行愛一行,有時候看一下不妨自己敲一邊,還能給人帶來一種成就感以及提升對學習的熱愛,所以愛學習的小夥伴動起來吧。
本文轉自百度文件
以訂票為例簡單應用wcf新建一個wcf服務應用程式
在IService1.cs定義服務契約
- namespace WcfDemo
- {
-
// 注意: 如果更改此處的介面名稱 "IService1",也必須更新 Web.config 中對 "IService1" 的引用。
- [ServiceContract] // 服務合同 即提供服務的介面或類
- publicinterface IService1
- {
- [OperationContract]
- /* 增加車票的方法*/
- void AddTicket(int count);
- [OperationContract]
- /*購買車票的方法*/
- int BuyTickets(int Num);
- [OperationContract] //服務契約 即提供服務的實現方法
- /*查詢車票的方法*/
- int GetRemainingNum();
- // 任務: 在此處新增服務操作
- }
-
// 使用下面示例中說明的資料約定將複合型別新增到服務操作。
- [DataContract] //資料契約
- publicclass Ticket
- {
- bool boolCount = true;//判斷是否還有車票
- int howmany = 10;//還有多少車票
- [DataMember]
- /*判斷是否還有票*/
- publicbool BoolCalue
- {
- get
- {
- if (HowMany > 0)
- {
- boolCount = true;
- }
-
else
- {
- boolCount = false;
- }
- return boolCount;
- }
- }
- [DataMember]
- /*返回票數*/
- publicint HowMany
- {
- get { return howmany; }
- set { howmany = value;}
- }
- }
- }
在Service1.svc中實現契約服務
- namespace WcfDemo
- {
- // 注意: 如果更改此處的類名“Service1”,也必須更新 Web.config 和關聯的 .svc 檔案中對“Service1”的引用。
- publicclass Service1 : IService1
- {
- Ticket T=new Ticket();
- /*實現新增票數的方法*/
- publicvoid AddTicket(int count)
- {
- T.HowMany=T.HowMany+count;
- }
- /*實現返回票數的方法*/
- publicint GetRemainingNum()
- {
- return T.HowMany;
- }
- /*實現購買車票的方法*/
- publicint BuyTickets(int Num)
- {
- if (T.BoolCalue)
- {
- T.HowMany = T.HowMany - Num;
- return 1;
- }
- else
- {
- return 0;
- }
- }
- }
- }
編譯後生成WcfDemo.dll
新增宿主程式用於監測服務
新增WinForm專案加入解決方案介面如下圖:
介面上兩個按鈕:
啟動服務按鈕: 用於啟動wcf服務
停止服務按鈕: 用於停止wcf服務
Label: 用於顯示服務相關資訊
後臺程式碼為:
應用名稱空間 using System.ServiceModel;
新增引用 wcf服務生成的dll檔案 WcfDemo.dll
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- ServiceHost host = null;//定義 ServiceHost
- privatevoid button1_Click(object sender, EventArgs e)
- {
- host = new ServiceHost(typeof(WcfDemo.Service1));//WcfDemo.Service1 為引用的dll中的服務
- host.Open();//啟動服務
- this.label1.Text = "服務已啟動";
- }
- privatevoid button2_Click(object sender, EventArgs e)
- {
- if (host.State != CommunicationState.Closed)//判斷服務是否關閉
- {
- host.Close();//關閉服務
- }
- this.label1.Text = "服務已關閉";
- }
- }
接下來配置app.config
- <?xmlversion="1.0"encoding="utf-8"?>
- <configuration>
- <system.serviceModel>
- <services><!--新增服務-->
- <servicename="WcfDemo.Service1"behaviorConfiguration="CalculatorServiceBehavior">
- <!--name 必須與程式碼中的host例項初始化的服務一樣
- behaviorConfiguration 行為配置 -->
- <host>
- <baseAddresses>
- <!--新增呼叫服務地址-->
- <addbaseAddress="http://localhost:8000/"/>
- </baseAddresses>
- </host>
- <!--新增契約介面 contract="WcfDemo.IService1" WcfDemo.IService1為契約介面 binding="wsHttpBinding" wsHttpBinding為通過Http呼叫-->
- <endpointaddress=""binding="wsHttpBinding"contract="WcfDemo.IService1"></endpoint>
- </service>
- </services>
- <!--定義CalculatorServiceBehavior的行為-->
- <behaviors>
- <serviceBehaviors>
- <behaviorname="CalculatorServiceBehavior">
- <serviceMetadatahttpGetEnabled="true"/>
- <serviceDebugincludeExceptionDetailInFaults="false"/>
- </behavior>
- </serviceBehaviors>
-
</behaviors
相關推薦
.net WCF簡單例項
最近看到網上招聘有許多都需要WCF技術的人員,我之前一直沒接觸過這個東西,以後工作中難免會遇到,所謂笨鳥先飛,於是我就一探究竟,便有了這邊文章。由於是初學WCF沒有深入研究其原理,只是寫了一個demo留著以後,如果哪裡寫的不對希望大佬們能指出批評。個人認為WCF類似於Web
【5】.net WCF 簡單例項
1.建立WCF專案 2.系統自動生成IWcfService // 注意: 使用“重構”選單上的“重新命名”命令,可以同時更改程式碼和配置檔案中的介面名“IService1”。 [ServiceContract] public interface
WCF的簡單例項
以訂票為例簡單應用wcf程式,需要的朋友可以參考下申明: 本篇為轉載,寫部落格只是本人的興趣愛好,而且也是記錄學習的一種好的方法,經過本人測試,本部落格真實有效,本人是個小菜鳥,但是學一行愛一行,有時候看一下不妨自己敲一邊,還能給人帶來一種成就感以及提升對學習的熱愛,所以愛
WCF duplex 簡單例項
1.定義兩個介面 //客戶端呼叫 [ServiceContract(CallbackContract = typeof(IContractCallback))] public interfac
WCF簡單使用(分別部署在控制臺和IIS上)
啟動項 找到 utf col 調用服務 cti 圖片 pub console WCF部署到控制臺 1.下面通過一個簡單的服務示例來認識WCF1.新建項目,名稱IBLL,解決方案名稱WcfDemo,模板選擇類庫2.修改Class1.cs文件名稱為 IUserInfoSe
S2SH簡單例項註解版——登入功能實現
第一步:Spring4 整合 Hibernate4 Spring4 接管 Hibernate4 所有 Bean 例項,以及 SessionFactory,事務管理器; 泛型注入; Entity package com.java1234.entity; import j
簡單知識點例項之三:Bootstrap-Table和後臺進行百分百互動的簡單例項
這是一個針對前後臺互動的例子,可以直接套進專案中通暢執行。第二頁之所以資料不對,是因為例子畢竟沒有真正的後臺,所以資料不對。但是可以套入專案中,就正常了。 重點: 其中bootstrap-table有一個search:truse搜尋框的引數我沒有使用,而是自己寫了一個搜尋框,
express-session 簡單例項
express-session 例項 app.js var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); v
qt拖拽事件簡單例項
話不多說直接上程式碼,一看就懂 注意:當使用管理員許可權執行qt creator時,程式可能無法檢測到拖拽事件! widget.h 檔案 class Widget : public QWidget { Q_OBJECT public: explicit
Vue.js + Vue Router簡單例項
Vue.js + Vue Router簡單例項 使用 Vue.js ,我們已經可以通過組合元件來組成應用程式,當你要把 Vue Router 新增進來,我們需要做的是,將元件 (components) 對映到路由 (routes),然後告訴 Vue Router 在哪裡渲染它們。 1
WPF 路由事件簡單例項
在Winform窗體中,新增一個按鈕然後雙擊按鈕就可以在.cs程式碼自動生成有關事件的程式碼,這就是一個簡單的事件模型,但是如果對於大型的設計介面,數量過多的控制元件通過每次都生成相關的時間程式碼,將是一個好大的時間與控制元件的浪費,如何解決這個問題,可以用路由事件解決(通俗籠統的解釋,詳解自行查閱
使用scala基於AKKA HTTP開發REST介面的簡單例項
一般情況下會使用SpringMVC開發REST介面,但是公司主開發語言是scala,因此採用AKKA HTTP(spray已經不再維護)來開發REST介面,具體可參看官網文件:AKKA HTTP 本文依據官網開發REST介面,具體如下: 開發環境:IDEA,MAVEN,SCALA
Keras 使用自己的資料分類,並使用tensorboard記錄的簡單例項
Keras 使用自己的資料分類,並使用tensorboard記錄的簡單例項 1.使用的分類圖片按照不同類別儲存在不同資料夾子中,並且切分好訓練集和測試集,如下圖顯示 注意:檔名建議使用標籤名 from keras.models import Sequential import
LTE關鍵技術之一:OFDMA(OFDM基本原理及簡單例項應用)
OFDM即正交頻分複用(Orthogonal Frequency Division Multiplexing),是多載波調製的一種,通俗來說就是通過多條互相沒有關係的通道傳輸不同的資訊。OFDM現在主要用於4G通訊上
JSON簡單例項
var a= { "_id" : 1, "name" : "abc", "age" : 13, "color" : "WHITE", "birthday" : "2000-12-10" } { "_id" : 2, "name" : "ed
關於Java中timer的一個簡單例項應用
效果展示 核心程式碼: Timer timer = new Timer();//新增定時器 timer.schedule( new TimerTask(){//重寫定時任務 public void run(){ button2.setText("取消"+S
JSON的簡單例項
JSON全稱是JavaScript Object Notation(JavaScript物件表示法),是一種儲存與交換文字資訊的語法,類似與XML,但 比 XML 更小、更快,更易解析。 理論就不多說了,直接上程式碼 <!DOCTYPE html> <htm
詳解Scala集合類之陣列的語法格式以及簡單例項
簡介 Scala 語言中提供的陣列是用來儲存固定大小的同類型元素。宣告陣列是宣告一個就像numbers這樣的變數,然後使用 numbers[0]、numbers[1]、…、numbers[99] 來表示一個個單獨的變數。陣列中某個指定的元素是通過索引來訪問的。 陣列的第一個元素索引為0,最
Kafka學習(三)簡單例項(可以簡單做測試)
java客戶端連線kafka簡單測試 本案例kafka版本是kafka_2.11-0.9.0.1,用java來實現kafka生產者、消費者的示例 在測試的過程中遇到的特別的問題以及解決辦法,其他小問題就不一一列舉了。 1 . 使用kafka-clients進行測試,maven依賴
HTML下拉選擇 簡單例項 新增刪除節點到另一個節點下
下拉選擇 簡單例項 <html> <head> <title>HTML</title> <style type="text/css"> </style> </h