国产午夜成人免费看片无遮挡_日本免费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>

        国产清纯在线一区二区www| 激情六月婷婷久久| 图片区小说区国产精品视频| 99久久精品国产一区二区三区| 国产欧美中文在线| 成人手机电影网| 一区二区三区加勒比av| 欧美性猛交一区二区三区精品| 午夜一区二区三区在线观看| 精品视频资源站| 美腿丝袜亚洲一区| 国产欧美一区二区三区在线看蜜臀 | 中文字幕制服丝袜成人av| 成人涩涩免费视频| 亚洲免费av高清| 制服丝袜成人动漫| 国产一区二区三区综合| 亚洲免费在线观看| 欧美一二三区精品| 99久久久久久| 精品一区二区日韩| 18欧美亚洲精品| 欧美一区日本一区韩国一区| 国产成人精品免费在线| 亚洲图片欧美一区| 久久久久九九视频| 欧美精品精品一区| 日韩亚洲欧美一区二区三区| 国产成人啪午夜精品网站男同| 一区二区在线观看免费视频播放| 日韩一区二区电影在线| 一本大道av伊人久久综合| 久久成人18免费观看| 一区二区三区在线视频免费观看| 国产视频一区二区三区在线观看| 欧美日韩国产中文| 99国内精品久久| 国产在线精品一区在线观看麻豆| 亚洲va韩国va欧美va| 自拍偷拍亚洲激情| 国产女主播一区| 欧美mv和日韩mv国产网站| 欧美色图第一页| av不卡一区二区三区| 美女一区二区视频| 性欧美疯狂xxxxbbbb| 亚洲日本在线天堂| 国产精品美女久久久久久久| 久久久精品天堂| 精品理论电影在线| 日韩免费福利电影在线观看| 欧美精品18+| 欧美色爱综合网| 91久久国产最好的精华液| 成人不卡免费av| 成人久久久精品乱码一区二区三区 | 欧美激情一区二区三区不卡| 欧美大片在线观看一区二区| 5858s免费视频成人| 91黄色免费网站| 91蜜桃传媒精品久久久一区二区| 国产黄人亚洲片| 国产aⅴ综合色| 成人免费观看视频| 97精品久久久久中文字幕 | 91精品国产免费| 欧美一区二区三区免费在线看| 欧美精品丝袜久久久中文字幕| 欧美视频在线观看一区| 在线中文字幕一区| 精品视频1区2区3区| 欧美日韩精品一区二区在线播放| 欧美色精品天天在线观看视频| 欧美久久久久免费| 91精品免费在线观看| 欧美一区二区视频在线观看2022| 日韩美女一区二区三区| 久久久久国产精品免费免费搜索| 国产欧美一区二区三区沐欲| 国产精品成人免费在线| 国产综合成人久久大片91| 黑人巨大精品欧美一区| 成人一级片在线观看| aa级大片欧美| 欧美日韩一区二区三区不卡| 日韩一级黄色大片| 久久久久免费观看| 国产精品网站导航| 亚洲午夜日本在线观看| 美女看a上一区| 风流少妇一区二区| 欧美日韩一区中文字幕| 欧美α欧美αv大片| 亚洲人成伊人成综合网小说| 日韩av电影免费观看高清完整版 | 久久色中文字幕| 亚洲天堂2016| 精品一区二区成人精品| 91视频精品在这里| 欧美大片国产精品| 综合久久一区二区三区| 麻豆精品在线视频| 91片在线免费观看| 精品国产乱码91久久久久久网站| 亚洲欧美另类综合偷拍| 精久久久久久久久久久| 色av成人天堂桃色av| 欧美电影精品一区二区| 亚洲一区二区av在线| 成人久久视频在线观看| 精品国产三级a在线观看| 亚洲乱码一区二区三区在线观看| 极品销魂美女一区二区三区| 欧美亚洲动漫精品| 国产精品免费久久| 国产一区二区91| 51久久夜色精品国产麻豆| 亚洲视频在线观看三级| 国产一区二区三区四区五区美女 | 欧美一区二区三区视频在线观看| 亚洲欧洲另类国产综合| 精品一区二区三区香蕉蜜桃 | 色综合中文综合网| 精品久久国产97色综合| 亚洲成av人片一区二区梦乃| 99re热这里只有精品免费视频| 久久综合成人精品亚洲另类欧美 | 99视频热这里只有精品免费| 制服丝袜在线91| 五月综合激情婷婷六月色窝| 一本大道久久a久久综合| 国产精品久久久久久久第一福利| 精品一区二区av| 欧美岛国在线观看| 国产美女精品人人做人人爽| 日韩亚洲国产中文字幕欧美| 五月婷婷另类国产| 777亚洲妇女| 蜜桃久久精品一区二区| 日韩美女在线视频| 国产一区二区在线观看视频| 亚洲精品一区二区三区99| 国内久久婷婷综合| 国产欧美日本一区二区三区| 国产盗摄一区二区| 国产精品麻豆视频| 色综合色狠狠综合色| 亚洲精品成人悠悠色影视| 欧美三级日韩在线| 日韩激情中文字幕| 精品国产精品网麻豆系列 | 欧美猛男男办公室激情| 亚洲www啪成人一区二区麻豆| 91麻豆精品国产91久久久久久| 久久精品国产秦先生| 国产欧美一区二区三区在线看蜜臀| 成人免费视频app| 一区二区三区四区乱视频| 欧美日韩亚洲高清一区二区| 免费久久精品视频| 国产精品免费视频观看| 在线观看一区日韩| 蜜桃av一区二区三区电影| 国产欧美一区在线| 色成年激情久久综合| 久久99精品久久久久久国产越南| 中文字幕亚洲在| 欧美一区二区久久| av午夜一区麻豆| 另类欧美日韩国产在线| 成人欧美一区二区三区1314| 欧美丰满美乳xxx高潮www| 成人精品在线视频观看| 日韩中文字幕一区二区三区| 国产欧美精品一区二区三区四区| 色综合久久综合中文综合网| 麻豆精品一区二区| **欧美大码日韩| 亚洲精品一区二区三区福利 | 久久精品国产亚洲高清剧情介绍| 欧美激情在线一区二区三区| 欧美剧在线免费观看网站| 国产+成+人+亚洲欧洲自线| 亚洲国产精品一区二区尤物区| 日韩精品一区二区三区中文不卡| www.99精品| 精品一区二区免费在线观看| 一区二区三区加勒比av| 国产精品视频一二三| 日韩欧美色综合| 国产精品网站在线观看| 91精品国产aⅴ一区二区| 色天天综合色天天久久| 成人一道本在线| 麻豆精品视频在线观看免费| 午夜精品国产更新| 夜色激情一区二区| 亚洲精品国产无套在线观 | 久久综合久久综合久久| 欧美福利视频导航|