日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WCF(学习笔记)【参见WCF教程】

發布時間:2025/3/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF(学习笔记)【参见WCF教程】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?WCF:基于SOA(面向服務編程 )的一個.net框架產品 ? 一種分布式通訊的統一模型(分布式通訊就是對多種 操作系統和平臺的的兼容) 通信范圍比較廣

? Web service???????????? .net Remoting

其他?????????? WCF????? 其他

?? 定義一個wcf服務后? 它會對外發布一個

? 端點? 協議? 綁定

?

? 宿主程序:asp.net? exe? wpf?? window? forms......

WCF可以支持的協議:TCP? HTTP? 跨進程?? 自定義協議

?在WCF框架下? 開發基于SOA的分布式系統

??? .net Remoting? :能夠高性能的實現.net 和.NET之間的通訊?? 受語言限制, ??? Web Service:基于SOAP(協議), 可以跨平臺調用:

????? ? WCF 是面向服務的產品 ,

?那么WCF也是基于SOAP的通訊機制 ,這保證了系統之間的互操作性

?

???????? WCF最重要的是能夠快捷的額創建一個服務, ?? WCF 包括三部分:

?1,Service Class :一個標記了[ServiceContract]Attribute的類[契約標簽]

?? [ServiceContract]? [OperationConstract] 服務契約

?? [DataContract]? [DataMember]? 數據契約

?2,Host(宿主):可以使應用程序? 它是WCF Service運行的環境

?也就是說? 服務器上(的程序)

?

?3,Endpoints:可以使一個 也可以是一組? wcf實現通訊的核心要素

?WCF 由一組Endpoints集合組成? 每個endpoint就是用于通信的入口?

? 客 服 通過endpoint交換信息

??

??? 一個endpoint(端點) 由三部分組成? : ? ?? (where)address(地址):是endpoint的網絡地址 它標記了消息發送的目的地?

? ?(what)? contract (契約):描述消息包含的內容? 以及消息的組織和操作方式

? (how) Binding? (綁定):描述如何發送消息? ,例如消息發送的傳輸協議(如TCP,HTTP) ?安全(如ssl,soap消息安全)?

? opration操作

?

????? 那么WCF是怎樣通訊的呢????

? WCF管理的是服務端和客戶端的通信??

?? 對于服務端? WCF提供了類ServiceDescription用于描述一個WCF Service

?? 對于客戶端? WCF管理的是發送消息 時 需要使用到得通道Channel, ?????? 類channelDescription描述了這樣一個通道

ServiceDescription ????????? Service Type ????????? ISerciceBehavor ?????????? ServiceEndpoint ???????????????? EndpointAddress ???????????????? Binding ???????????????? ContractDescription

?

?

?????????? 下面要寫一個wcf的程序 ?首先要添加引用? system.ServiceModel

一般我們要定義wcf服務時 先把一個接口定義為一個服務 ?這樣為了更好的面向對象(服務)編程 ? 在接口中添加[ServiceContract] [OperationContract] [DataContract] [DataMember]

在實現接口類中就不需要 在添加標簽啦 ? ????????

?? 接下來:一個WCF Service 必須有host作為它的運行環境 ,這個host可以是

? ASP.NET? Windows Service? 不通的應用程序? 例如控制臺程序

??? host實現

?????????? using System.ServiceModel

??????????? //創建一個SerciceHost對象?? 參數(服務實現類的類型typeof,url對象)

?? ServiceHost host =new ServiceHost(typeof(MyMethod),new Url("http://localhost:8080/HelloService"));

?

?

?

?

?

新建兩個項目 ?一:wcf服務應用程序 服務端 二:控制臺?? 客戶端

?

?服務端:接口? 服務契約:標簽

1,ServiceContract??? 聲明接口或類在客戶端可見? 2,OperationContract?? 聲明具體的方法在客戶端可見

?? 數據契約:標簽

1,DataContract??? 把某個類或結構聲明為數據契約? ,這個類就可以再客戶端可見并可用來聲明變量

2, DataMember????? 把服務端類中的變量? 字段 標記為在客戶端可見

??

???????? 客戶端:

?在客戶端 控制臺程序中????? 添加服務引用?

?? 在? 發現 中會去尋找可用的服務

?在最下面會有服務引用的命名空間? ServiceReference1

?

?????? 在客戶端調用服務? ? 1,定義通信管道 client? 就是通過它來調用服務端提供的方法的

?? ServiceReference1.ServiclClient? client =new ServiceReference1.ServiclClient ();

?? ?client.studentlClass();

2,服務端提供給客戶端使用的類

? ServiceReference1.student1(服務端的類) stu==

?

?

?? 問題:

?? 1,要想在客戶端使用服務端里自定義的類型,除了用 [DataContract]聲明之外 還要有一個服務契約(方法)[OperationContract]的返回值是這個類型的。 ?? 2,在接口類中(對客戶端開發并可以調用的類型),在接口該類中,定義一個字段并賦默認值

? 定義一個屬性并給它賦默認值?

?? 那么在客戶端調用時? 輸出該類中的屬性值?

?? 為空????? 默認值丟失???????

?序列化的問題?????? ? ??

總結

以上是生活随笔為你收集整理的WCF(学习笔记)【参见WCF教程】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。