国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用 SOAP Toolkit 2.0 將現有代碼作為 Web 服務提供

運用 SOAP Toolkit 2.0 將現有代碼作為 Web 服務提供

更新時間:2022-05-10 文章作者:未知 信息來源:網絡 閱讀次數:

使用 SOAP Toolkit 2.0 將現有代碼作為 Web 服務提供
使用 .NET 建立分布式應用程序
Steve Kirk 和 Priya Dhawan
Microsoft Developer Network

摘要:本文介紹了使用 Microsoft SOAP Toolkit 版本 2.0 將現有 Microsoft Visual Basic 6.0 代碼作為 Web 服務提供時所進行的數據轉換。

目錄
簡介
現有代碼提供的數據類型
ADO 2x Command 對象
ADO 2x Recordset 對象
Stream 對象
XMLDOM 對象
總結

簡介
Microsoft®SOAP Toolkit 版本 2.0 簡化了將現有代碼作為 Web 服務提供和使用的任務,MSDN Library 的 SDK 部分中的 SOAP Toolkit 2.0 文檔(英文)對此進行了說明。在服務器端執行的一些主要功能是,在現有代碼傳遞的不同數據類型的數據和 XML 消息(在 Web 服務客戶機和服務器之間使用)之間進行轉換。簡單數據類型的轉換可以自動處理,較為復雜的數據類型則需要開發人員提供轉換代碼。

評估現有代碼是否適合于作為 Web 服務提供時,本文討論的數據轉換問題并不是唯一需要考慮的問題。應考慮的其它因素包括對象和狀態模型、返回的數據大小、如何表示已經成功、如何返回錯誤信息、安全模型(包括訪問控制、身份驗證和加密)、執行模型(同步或異步)、如何分發代碼,以及事務模型(COM+ 事務或聲明型事務),等等。這些問題將在即將發表的體系結構主題(英文)文章中進行討論。

現有代碼提供的數據類型
要介紹現有代碼傳遞的所有數據類型的轉換是一個相當大的工程,因此本文介紹了某些最常用的數據類型。通過 SOAP Toolkit 代碼進行轉換的一個替代方案是使用 XML 接口對現有代碼進行擴展。本文討論了以下數據類型的轉換方法:

ADO 2x Command 對象
ADO2x Recordset 對象
Stream 對象
XMLDOM 對象
ADO 2x Command 對象
直接訪問數據庫的現有代碼經常會提供 Microsoft ActiveX® 數據對象 (ADO) 的 Command 對象。雖然不能在運行于不同進程中的應用程序層之間傳遞 Command 對象,但可以在同一進程內傳遞該對象。對于單行數據實體,通過 Command 對象的輸出參數返回數據比通過 ADO 記錄集返回數據效率更高。因此,ADO Command 對象對于返回單行實體數據十分有用。

讀數據
以下示例中的現有代碼返回一個 ADO Command 對象,它包含作為輸出參數的數據。在傳遞給 Web 服務的客戶之前,Custom Type Mapper 中的代碼使用 SoapSerializer 對象對 Command 對象進行轉換:

With SoapSerializer
`轉換 CommandType
.startElement "CommandType"
.writeString Cmd.CommandType
.endElement
`轉換 CommandText
.startElement "CommandText"
cmdText = Cmd.CommandText
cmdText = Left(Cmd.CommandText, Len(cmdText) - 8)
cmdText = Right(cmdText, Len(cmdText) - 7)
.writeString cmdText
.endElement
`轉換 Parameters 集合
.startElement "Parameters"
For i = 0 To oCmd.Parameters.Count - 1
.startElement Right(oCmd.Parameters(i).Name, _
Len(oCmd.Parameters(i).Name) - 1)
.startElement "Direction"
.writeString oCmd.Parameters(i).Direction
.endElement
.startElement "Type"
.writeString oCmd.Parameters(i).Type
.endElement
.startElement "Size"
.writeString oCmd.Parameters(i).Size
.endElement
.startElement "Value"
.writeString oCmd.Parameters(i).Value
.endElement
.endElement
Next
.endElement
End With
寫數據
將數據作為 Command 對象的參數傳遞是一種非常有效的數據傳遞方法。它還可以進行擴展,并提供了一些類型檢查功能。

以下示例中,客戶提交給 Web 服務的 XML 數據被轉換為 ADO Command 對象的參數,它將被傳遞到現有代碼:

Dim Cmd As ADODB.Command
Dim Param As ADODB.Parameter
' pNode 是包含客戶提交的 XML 的 MSXML2.IXMLDOMNode
' 實例化一個 ADO Command 對象
Set Cmd = New ADODB.Command
With Cmd
' 應用 CommandType 和 CommandText
.CommandType = _
CInt(pNode.selectSingleNode("CommandType").nodeTypedValue)
.CommandText = pNode.selectSingleNode("CommandText").nodeTypedValue
' 填充 Parameters 集合
Set nodeParent = pNode.selectSingleNode("Parameters")
For i = 0 To nodeParent.childNodes.length - 1
Set nodeParameter = nodeParent.childNodes(i)
Set Param = New ADODB.Parameter
With Param
.Name = "@" + nodeParameter.nodeName
.Direction = _
nodeParameter.selectSingleNode("Direction").nodeTypedValue
.Type = nodeParameter.selectSingleNode("Type").nodeTypedValue
.Size = nodeParameter.selectSingleNode("Size").nodeTypedValue
.Value = factory.getMapper(enXSDstring, _
Nothing).Read(nodeParameter.selectSingleNode("Value"), _
bstrEncoding, encodingMode, lFlags)
End With
.Parameters.Append oParam
Next
End With

ADO 2x Recordset 對象
ADO 2x 斷開連接的記錄集通常用于在多層應用程序的各層之間傳遞數據。數據可以是單行、多行或分層次的行。

讀數據
本示例中,現有代碼返回一個 ADO Recordset 對象,它包含的層次行數據將被轉換為 XML,然后再返回給客戶:

Dim Doc As MSXML2.DOMDocument
Set Doc = New MSXML2.DOMDocument
' 將記錄集數據寫入 XMLDOM
rs.Save oDoc, adPersistXML
' 將 XML 傳遞到 SOAP Toolkit Serializer
SoapSerializer.writeXML Doc.xml

寫數據
以下示例中,使用表示層次行數據的 XML 填充 ADO Recordset 對象,該對象將被傳遞到現有代碼:

Dim rs As ADODB.Recordset
Dim Doc As MSXML2.DOMDocument
Set rs = New ADODB.Recordset
Set Doc = New MSXML2.DOMDocument
' 將 XML 載入 XMLDOMDocument
Doc.loadXML pNode.xml
' 使用來自 XMLDOMDocument 的 XML 填充記錄集
rs.Open Doc
Stream 對象
流提供了一種在應用程序的本地層之間傳遞數據的有效方法。它是從 Microsoft SQL Server™2000 中讀取 XML 的主要方法。

讀數據
以下示例中,現有代碼返回表示層次行數據的 XML 流,它將被轉換,然后返回給客戶:

Dim inStream As ADODB.Stream
' pvar 包含現有代碼返回的流對象
Set inStream = pvar
' 將 XML 數據從流傳遞到 SOAP Serializer
SoapSerializer.writeString inStream.ReadText
XMLDOM 對象
XMLDOM 對象是一種在多層應用程序的本地層之間傳遞數據的好方法。它提供了接口可擴展性、類型檢查和架構驗證功能。

讀數據
以下示例中,現有代碼返回一個 XMLDOMDocument 對象,該對象將被轉換,然后返回給客戶:

`pvar 包含 XMLDOMDocument
pSoapSerializer.writeXML pvar.xml

寫數據
以下示例中,使用表示層次行數據(由客戶提交)的 XML 填充 XMLDOM 對象,然后將該對象傳遞到現有代碼:

Set oDoc = New MSXML2.DOMDocument
' 將 IXMLDOMNode XML 載入 DOMDocument 對象
`pnode 包含 IXMLDOMNode 對象
oDoc.loadXML pNode.childNodes(0).xml
總結
本文及附帶的示例介紹了有關數據轉換的信息。通過數據轉換,可以使用 SOAP Toolkit 2.0 將現有代碼作為 Web 服務提供。本文介紹了一些常用的接口對象。

這些解決方案的性能各異,并且受所傳遞的數據大小影響。在本系列后面的文章中,我們將對這些實現方法進行比較。

評估現有代碼是否適合作為 Web 服務時,接口只不過是應當考慮的諸多因素之一。應考慮的其它因素包括安全性(包括授權、身份驗證和加密)、事務模型、狀態模型、返回錯誤和結果的方式,以及代碼是同步還是異步執行,等等。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        久久久不卡网国产精品二区| 国产成人午夜高潮毛片| 亚洲美女精品一区| 久久99精品久久久久久国产越南| 97国产精品videossex| 精品少妇一区二区三区日产乱码 | 香蕉影视欧美成人| 豆国产96在线|亚洲| 日韩你懂的在线观看| 一个色妞综合视频在线观看| 成人高清视频免费观看| 成人综合在线观看| 2023国产精品| 激情六月婷婷久久| 欧美一级欧美一级在线播放| 婷婷丁香久久五月婷婷| 欧美亚洲日本一区| 午夜精品福利在线| 91网站黄www| 亚洲免费毛片网站| 不卡免费追剧大全电视剧网站| 久久精品一区二区三区不卡牛牛| 国产在线国偷精品产拍免费yy| 欧美成人综合网站| 国内不卡的二区三区中文字幕| 日韩女优av电影| 国产精品伊人色| 精品国产乱码久久| 国产成人综合亚洲91猫咪| 久久久www免费人成精品| 国产精品亚洲综合一区在线观看| 久久亚洲精精品中文字幕早川悠里| 九一久久久久久| 久久精品人人做人人爽97| 福利电影一区二区| 91福利视频久久久久| 五月天久久比比资源色| 欧美一级午夜免费电影| 美美哒免费高清在线观看视频一区二区 | 日韩一级免费观看| 亚洲国产成人porn| 91精品福利在线一区二区三区| 麻豆成人91精品二区三区| 国产欧美综合色| 91行情网站电视在线观看高清版| 三级一区在线视频先锋| 91精品国产手机| 国产98色在线|日韩| 亚洲人成网站精品片在线观看| 在线不卡中文字幕| 国产精品1区2区3区| 亚洲综合成人在线| 久久久久久久久久久久久夜| 91国产丝袜在线播放| 麻豆精品久久精品色综合| 中文字幕亚洲区| 51精品久久久久久久蜜臀| 成人禁用看黄a在线| 国产欧美在线观看一区| 欧美日韩一区二区三区高清| 国产精品一区二区你懂的| 丝袜美腿高跟呻吟高潮一区| 国产精品美女久久久久久2018| 69av一区二区三区| 色综合中文字幕| 国产福利一区在线| 免费在线成人网| 夜夜亚洲天天久久| 国产精品久久久99| 日韩精品专区在线影院重磅| 色偷偷久久一区二区三区| 国产在线观看免费一区| 亚洲欧洲日韩女同| 久久久91精品国产一区二区精品 | 一区二区三区四区乱视频| 久久伊人中文字幕| 欧美一卡二卡三卡四卡| 蜜臀精品久久久久久蜜臀| 亚洲免费av高清| 国产精品人妖ts系列视频| 精品免费99久久| 欧美美女一区二区三区| 欧洲色大大久久| 色婷婷国产精品久久包臀| 99在线视频精品| 成人av网站在线观看免费| 国产a级毛片一区| 国产高清精品网站| 成人永久免费视频| 成人激情校园春色| 在线视频一区二区免费| 日本道在线观看一区二区| 在线观看日韩av先锋影音电影院| 国产精品99久久久久久久vr| 亚洲高清三级视频| 日韩国产欧美视频| 久久国产精品99精品国产 | 五月综合激情婷婷六月色窝| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕精品一区二区精品绿巨人 | 奇米精品一区二区三区在线观看| 亚洲五月六月丁香激情| 亚洲一区中文日韩| 日日欢夜夜爽一区| 国产亚洲综合av| 国产精品视频看| 中文字幕字幕中文在线中不卡视频| 亚洲欧洲一区二区在线播放| 亚洲男女毛片无遮挡| 亚洲国产欧美日韩另类综合| 国产欧美精品一区| 亚洲精品成人悠悠色影视| 亚洲国产欧美在线人成| 麻豆成人在线观看| 懂色av中文字幕一区二区三区| 香蕉影视欧美成人| 久久成人免费网| 91麻豆.com| 欧美一区二区视频网站| 国产精品欧美久久久久无广告| 夜夜嗨av一区二区三区四季av| 日韩二区三区在线观看| 极品少妇一区二区三区精品视频| 色综合视频在线观看| 国产欧美日韩三区| 国产成人综合在线| 久久男人中文字幕资源站| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品久久久久久久多人混战 | 久久精品国产亚洲高清剧情介绍| 欧美性受xxxx| 亚洲夂夂婷婷色拍ww47| 91美女片黄在线观看| 亚洲色图.com| 91福利小视频| 亚洲h精品动漫在线观看| 91国产免费观看| 亚洲一级二级在线| 欧美人动与zoxxxx乱| 亚洲国产视频a| 欧美日韩高清影院| 午夜精品福利一区二区三区蜜桃| 欧美亚洲高清一区二区三区不卡| 亚洲国产日韩在线一区模特| 欧美三级在线视频| 日韩精品欧美成人高清一区二区| 91麻豆精品国产91久久久更新时间 | 日韩精品中文字幕一区二区三区 | 欧美亚洲一区三区| 图片区小说区区亚洲影院| 日韩欧美在线123| 精品伊人久久久久7777人| 久久久久青草大香线综合精品| 国产麻豆视频一区二区| 国产精品网站导航| 欧美日韩国产一级片| 国产一区二区三区在线观看精品| 国产精品欧美极品| 欧美视频一区二区三区四区| 国产成人精品免费一区二区| 中文字幕欧美激情| 欧美猛男男办公室激情| 国内精品在线播放| 亚洲欧洲在线观看av| 7777女厕盗摄久久久| 国产一区二区三区精品欧美日韩一区二区三区| 国产拍揄自揄精品视频麻豆| 欧日韩精品视频| 国产一区二区三区观看| 樱桃国产成人精品视频| 日韩欧美国产综合在线一区二区三区| 国产一区二区视频在线播放| 亚洲精品国产一区二区精华液| 久久久www成人免费无遮挡大片| 成人福利视频网站| 日韩电影在线看| 亚洲人成网站色在线观看| 欧美一二三区在线| 一本一本大道香蕉久在线精品| 蜜桃视频一区二区三区在线观看| 1024成人网色www| 精品国产成人系列| 欧美日韩国产精品成人| 不卡一区二区在线| 精品一区二区免费看| 亚洲一级不卡视频| 国产精品系列在线| 久久亚洲免费视频| 欧美一区二区女人| 欧美午夜一区二区三区| 成人黄色小视频在线观看| 久久国产人妖系列| 日韩高清不卡一区| 亚洲影视在线观看| 亚洲精品乱码久久久久久 | 亚洲成人av电影| 亚洲视频每日更新| 中文欧美字幕免费| 久久精品一区二区| 久久久久久久性|