教學課程 1:開發 Echo 配接器
在本教學課程中,您將使用 WCF LOB 配接器 SDK 來開發功能配接器。 配接器會模擬虛構企業營運系統的作業,以說明 WCF LOB 配接器 SDK 的許多重要功能,包括:
同步輸入
同步輸出
中繼資料流覽
中繼資料搜尋
中繼資料解析
本節包含回應配接器支援的各種功能。 它們是訊息交換、作業中繼資料、連接屬性和配接器屬性。
訊息交換模式
回應配接器支援下列兩種訊息交換模式:
同步輸出,也就是取用用戶端會透過配接器將 WCF 要求訊息傳送至目標系統,然後等候透過配接器從目標系統接收 WCF 回應訊息。 這是介面卡最常見的訊息交換模式。 若要支援同步輸出,請實作
Microsoft.ServiceModel.Channels.Common.IOutboundHandler
介面。同步輸入,也就是取用用戶端會透過配接器接聽目標系統的資料或事件。 若要支援同步輸入,請實作
Microsoft.ServiceModel.Channels.Common.IInboundHandler
介面。如需訊息交換模式的詳細資訊,請參閱 架構概觀。
注意
配接器開發精靈會在 UI 中將訊息交換模式顯示為數據流。
中繼資料支援
回應配接器支援中繼資料流覽、搜尋和解析功能。 一般而言,流覽和搜尋會從 LOB 系統擷取作業。 針對回應配接器,LOB 系統是一組預先定義的作業,如下所示:
EchoMainCategory
Echo/EchoStrings
Echo/EchoGreetings
Echo/EchoCustomGreetingFromFile
Echo/OnReceiveEcho
以下是每個作業的定義:
名稱 | 作業定義 | 說明 | 方向 |
---|---|---|---|
EchoMainCategory | 類別 | 分類作業。 | N/A |
Echo/EchoStrings | string[] EchoStrings (字串資料) | 對呼叫用戶端回應傳入字串的指定次數。 | 傳出 |
Echo/EchoGreetings | Greeting[] EchoGreetings (Greeting 問候語) | 將傳入的 Greeting 物件回應呼叫用戶端的指定次數。 | 傳出 |
Echo/EchoCustomGreetingFromFile | CustomGreeting EchoCustomGreetingFromFile (Uri greetingInstancePath) | 從檔案讀取其實例,以回應 Greeting 物件。 Greeting 物件的中繼資料是從預先定義的 XSD 檔案取得。 | 傳出 |
Echo/OnReceiveecho | void OnReceiveEcho (Uri 路徑,長內容) | 回應在指定資料夾中卸載之檔案的位置和長度。 | 連入 |
配接器屬性
配接器會公開下列配接器屬性。
名稱 | 類別 | 資料類型 | 描述 |
---|---|---|---|
Count | 其他 | System.Int32 | 用來將指定的次數回應給呼叫用戶端的輸入。 預設值 = 5 |
EnableConnectionPooling | 其他 | System.Boolean | 用來啟用或停用介面卡的連接共用。 Default = true,這表示連線共用是在 WCF LOB 配接器 SDK 的執行時間引擎中啟用。 |
InboundFileFilter | 連入 | System.String | 僅用於輸入案例,且由 FileSystemWatcher 用來監視副檔名的檔案。 Default=*.txt |
InboundFileSystemWatcherFolder | 連入 | System.String | 用來設定將卸載檔案的資料夾,讓 FileSystemWatcher 向配接器發出通知。 預設值 = c:\inbound\watcher。 |
Connection Properties
回應配接器會公開下列連接屬性。
名稱 | 資料類型 | 描述 |
---|---|---|
應用程式 | System.String | LOB 系統內的應用程式名稱。 此屬性僅供說明之用。 回應配接器不包含任何 LOB 系統。 Default = lobapplication |
EnableAuthentication | System.Boolean | 若為 true,配接器預期用戶端認證內使用者名稱欄位中的值。 預設值 = false |
Hostname (主機名稱) | System.String | LOB 系統所在的伺服器名稱。 此屬性僅供說明之用。 回應配接器不包含任何 LOB 系統。 Default = lobhostname |
介面實作
WCF LOB 配接器 SDK 會定義必須實作的類別和介面集合,以支援配接器的特定功能。 下表描述這些類別和介面、其描述,以及實作它們的時機。
類別/介面 | 實作時機 | 描述 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IConnection | 如果您需要定義與目標系統的連線。 | 定義與目標系統的連線。 |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory | 如果您需要建立與目標系統的連線。 | 建立與目標系統的連線。 |
Microsoft.ServiceModel.Channels.Common.ConnectionUri | 如果您需要管理連線 URI。 如果您需要在 [新增配接器服務參考外掛程式] 工具內分類連接屬性。 |
管理目標系統的連線 URI。 |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler | 您的配接器必須支援中繼資料解析功能。 | 解析作業和類型中繼資料。 |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler | 如果您的配接器支援中繼資料搜尋功能。 | 搜尋目標系統內的作業。 |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler | 您的配接器必須支援流覽功能 | 流覽目標系統內的作業。 |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler | 如果您的配接器通常需要支援輸出功能。 | 將傳入 WCF 要求訊息轉換成目標系統訊息、叫用目標系統特定函式,然後將回應轉換成傳出 WCF 回應訊息。 |
Microsoft.ServiceModel.Channels.Common.IInboundHandler | 如果您的配接器支援輸入功能。 | 接聽目標系統的資料和/或事件。 |
若要簡化配接器開發,請使用配接器開發精靈來產生配接器專案,這會建立一組專為配接器功能量身打造的衍生類別。
若要透過 [新增配接器服務參考外掛程式] 和 [取用配接器服務增益集] 工具自訂配接器和連線屬性,請修改配接器開發精靈所產生的下列檔案。
{Projectname}BindingElement.cs
{Projectname}BindingElementExtensionElement.cs
{Projectname}ConnectionUri.cs
如需如何執行這項操作的詳細資訊,請參閱 步驟 2:分類配接器和連線屬性。