WebChannelFactory<TChannel> 類別

定義

存取用戶端上 Windows Communication Foundation (WCF) Web 服務的類別。

generic <typename TChannel>
 where TChannel : classpublic ref class WebChannelFactory : System::ServiceModel::ChannelFactory<TChannel>
public class WebChannelFactory<TChannel> : System.ServiceModel.ChannelFactory<TChannel> where TChannel : class
type WebChannelFactory<'Channel (requires 'Channel : null)> = class
    inherit ChannelFactory<'Channel (requires 'Channel : null)>
Public Class WebChannelFactory(Of TChannel)
Inherits ChannelFactory(Of TChannel)

類型參數

TChannel

要建立之通道的型別。

繼承

範例

下列程式碼示範如何使用 WebChannelFactory<TChannel> 類別來呼叫 WCF 服務。

Uri baseAddress = new Uri("http://localhost:8000");
WebServiceHost host = new WebServiceHost(typeof(Service), baseAddress);
try
{
    host.Open();

    WebChannelFactory<IService> cf = new WebChannelFactory<IService>(baseAddress);
    IService channel = cf.CreateChannel();
    string s;

    Console.WriteLine("Calling EchoWithGet via HTTP GET: ");
    s = channel.EchoWithGet("Hello, world");
    Console.WriteLine("   Output: {0}", s);

    Console.WriteLine("");

    Console.WriteLine("Calling EchoWithPost via HTTP POST: ");
    s = channel.EchoWithPost("Hello, world");
    Console.WriteLine("   Output: {0}", s);

    Console.WriteLine("");
}
catch (CommunicationException ex)
{
    Console.WriteLine("An exception occurred: " + ex.Message);
}
Dim baseAddress As New Uri("http://localhost:8000")
Dim host As New WebServiceHost(GetType(Service), baseAddress)
Try
    host.Open()

    Dim cf As New WebChannelFactory(Of IService)(baseAddress)
    Dim channel As IService = cf.CreateChannel()
    Dim s As String

    Console.WriteLine("Calling EchoWithGet via HTTP GET: ")
    s = channel.EchoWithGet("Hello, world")
    Console.WriteLine("   Output:  0}", s)

    Console.WriteLine("")

    Console.WriteLine("Calling EchoWithPost via HTTP POST: ")
    s = channel.EchoWithPost("Hello, world")
    Console.WriteLine("   Output:  0}", s)

    Console.WriteLine("")

Catch ex As CommunicationException
    Console.WriteLine("An exception occurred: " + ex.Message)
End Try

如需完整的程式碼範例,請參閱 基本 WCF REST 程式設計模型範例

備註

此類別為特殊的 ChannelFactory,在它未存在時,自動新增 WebHttpBehavior 至端點。 此外,若繫結未清楚設定而位址為 HTTP 或 HTTPS 時,它會新增預設 WebHttpBinding 至端點。

若合約所有作業沒有傳回值或傳回值為 StreamWebChannelFactory<TChannel>型別時,那麼 會為合適的內容型別設定繫結。

建構函式

WebChannelFactory<TChannel>()

初始化 WebChannelFactory<TChannel> 類別的新執行個體。

WebChannelFactory<TChannel>(Binding)

初始化 WebChannelFactory<TChannel> 類別的新執行個體。

WebChannelFactory<TChannel>(Binding, Uri)

使用指定的繫結及 WebChannelFactory<TChannel>,初始化 Uri 類別的新執行個體。

WebChannelFactory<TChannel>(ServiceEndpoint)

初始化 WebChannelFactory<TChannel> 類別的新執行個體。

WebChannelFactory<TChannel>(String)

初始化 WebChannelFactory<TChannel> 類別的新執行個體。

WebChannelFactory<TChannel>(String, Uri)

使用指定的端點組態及 WebChannelFactory<TChannel>,初始化 Uri 類別的新執行個體。

WebChannelFactory<TChannel>(Type)

初始化 WebChannelFactory<TChannel> 類別的新執行個體。

WebChannelFactory<TChannel>(Uri)

使用指定的 WebChannelFactory<TChannel> 初始化 Uri 類別的新執行個體。

屬性

Credentials

取得認證,用戶端會在處理站產生的通道上使用該認證與服務端點通訊。

(繼承來源 ChannelFactory)
DefaultCloseTimeout

取得針對要完成之關閉作業所提供的預設時間間隔。

(繼承來源 ChannelFactory)
DefaultOpenTimeout

取得針對要完成之開啟作業所提供的預設時間間隔。

(繼承來源 ChannelFactory)
Endpoint

取得由處理站產生的通道所要連接的服務端點。

(繼承來源 ChannelFactory)
IsDisposed

取得值,這個值會指出是否已經處置通訊物件。

(繼承來源 CommunicationObject)
State

取得值,這個值表示通訊物件目前的狀態。

(繼承來源 CommunicationObject)
ThisLock

取得會在狀態轉換期間保護類別執行個體的互斥鎖定。

(繼承來源 CommunicationObject)

方法

Abort()

導致通訊物件立即從目前的狀態轉換為關閉狀態。

(繼承來源 CommunicationObject)
ApplyConfiguration(String)

使用指定組態檔所提供的行為以及通道處理站之服務端點中的行為,初始化通道處理站。

(繼承來源 ChannelFactory)
BeginClose(AsyncCallback, Object)

開始非同步作業以關閉通訊物件。

(繼承來源 CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

開始非同步作業,關閉有已指定逾時的通訊物件。

(繼承來源 CommunicationObject)
BeginOpen(AsyncCallback, Object)

開始非同步作業以開啟通訊物件。

(繼承來源 CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

開始非同步作業,開啟有已指定時間間隔的通訊物件。

(繼承來源 CommunicationObject)
Close()

導致通訊物件從目前的狀態轉換為已關閉狀態。

(繼承來源 CommunicationObject)
Close(TimeSpan)

在指定時間間隔內,讓通訊物件從目前的狀態轉換為已關閉狀態。

(繼承來源 CommunicationObject)
CreateChannel()

建立指向指定之端點位址的指定型別通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

建立用來傳送訊息至指定端點位址的服務的通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

建立一個透過指定傳輸位址將訊息傳送至指定端點位址的服務的通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken)

建立用來將訊息傳送至具有扮演安全性權杖之服務的通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

用來將訊息傳送至位於特定端點位址做為安全性權杖之服務的建立通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

建立一個通道,這個通道可用來透過指定傳輸位址將訊息傳送至指定端點位址上做為安全性權杖的服務。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

用來將訊息傳送至具有已簽發安全性權杖之服務的建立通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

用來將訊息傳送至位於特定端點位址具有發行的安全性權杖之服務的建立通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

建立一個通道,這個通道可用來透過指定傳輸位址將訊息傳送至指定端點位址上具有發行之安全性權杖的服務。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

用來將訊息傳送至具有代表安全性權杖之服務的建立通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

用來將訊息傳送至位於特定端點位址具有代表安全性權杖之服務的建立通道。

(繼承來源 ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

建立一個通道,這個通道可用來透過指定傳輸位址將訊息傳送至指定端點位址上代表安全性權杖的服務。

(繼承來源 ChannelFactory<TChannel>)
CreateDescription()

建立服務端點的說明。

(繼承來源 ChannelFactory<TChannel>)
CreateFactory()

建置處理站之目前端點的通道處理站。

(繼承來源 ChannelFactory)
EndClose(IAsyncResult)

完成非同步作業以關閉通訊物件。

(繼承來源 CommunicationObject)
EndOpen(IAsyncResult)

完成非同步作業以開啟通訊物件。

(繼承來源 CommunicationObject)
EnsureOpened()

如果通道處理站尚未開啟,則開啟目前通道處理站。

(繼承來源 ChannelFactory)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Fault()

導致通訊物件從目前的狀態轉換為錯誤狀態。

(繼承來源 CommunicationObject)
GetCommunicationObjectType()

取得通訊物件的型別。

(繼承來源 CommunicationObject)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperty<T>()

從通道堆疊的適當層次傳回要求的型別物件 (如果存在的話),如果不存在則為 null

(繼承來源 ChannelFactory)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
InitializeEndpoint(Binding, EndpointAddress)

使用指定的繫結和位址,初始化通道處理站的服務端點。

(繼承來源 ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

使用指定的端點,初始化通道處理站的服務端點。

(繼承來源 ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

使用指定的位址和組態,初始化通道處理站的服務端點。

(繼承來源 ChannelFactory)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnAbort()

終止目前通道處理站的內部通道處理站。

(繼承來源 ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

開啟在目前通道處理站 (具有與其相關聯的狀態物件) 之內部通道處理站上的非同步關閉作業。

(繼承來源 ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

開啟在目前通道處理站 (具有與其相關聯的狀態物件) 之內部通道處理站上的非同步開啟作業。

(繼承來源 ChannelFactory)
OnClose(TimeSpan)

搭配完成作業的指定逾時,在內部通道處理站上呼叫關閉。

(繼承來源 ChannelFactory)
OnCloseAsync(TimeSpan)

存取用戶端上 Windows Communication Foundation (WCF) Web 服務的類別。

(繼承來源 ChannelFactory)
OnClosed()

在將通訊物件轉換為關閉狀態期間會叫用。

(繼承來源 CommunicationObject)
OnClosing()

在將通訊物件轉換為關閉狀態期間會叫用。

(繼承來源 CommunicationObject)
OnEndClose(IAsyncResult)

完成在目前通道處理站的內部通道處理站上的非同步關閉作業。

(繼承來源 ChannelFactory)
OnEndOpen(IAsyncResult)

完成在目前通道處理站的內部通道處理站上的非同步開啟作業。

(繼承來源 ChannelFactory)
OnFaulted()

在通訊物件上插入處理 (當它因為叫用同步錯誤作業而轉換到錯誤狀態之後)。

(繼承來源 CommunicationObject)
OnOpen(TimeSpan)

搭配完成作業的指定逾時,在目前通道處理站的內部通道處理站上呼叫開啟。

(繼承來源 ChannelFactory)
OnOpenAsync(TimeSpan)

存取用戶端上 Windows Communication Foundation (WCF) Web 服務的類別。

(繼承來源 ChannelFactory)
OnOpened()

初始化通道處理站之 ClientCredentials 物件的唯讀複本。

(繼承來源 ChannelFactory)
OnOpening()

WebChannelFactory<TChannel> 開啟時,呼叫此方法。

Open()

導致通訊物件從已建立狀態轉換為已開啟狀態。

(繼承來源 CommunicationObject)
Open(TimeSpan)

在指定時間間隔內,讓通訊物件從已建立狀態轉換為已開啟狀態。

(繼承來源 CommunicationObject)
ThrowIfDisposed()

如果已處置通訊物件,則會擲回例外狀況。

(繼承來源 CommunicationObject)
ThrowIfDisposedOrImmutable()

如果通訊物件的 State 屬性並未設定為 Created 狀態,就會擲回例外狀況。

(繼承來源 CommunicationObject)
ThrowIfDisposedOrNotOpen()

如果通訊物件不是處於 Opened 狀態,就會擲回例外狀況。

(繼承來源 CommunicationObject)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

事件

Closed

當通訊物件轉換至已關閉狀態時發生。

(繼承來源 CommunicationObject)
Closing

當通訊物件轉換至關閉狀態時就會發生。

(繼承來源 CommunicationObject)
Faulted

當通訊物件轉換至錯誤狀態時發生。

(繼承來源 CommunicationObject)
Opened

當通訊物件轉換至已開啟狀態時發生。

(繼承來源 CommunicationObject)
Opening

當通訊物件轉換至開啟狀態時發生。

(繼承來源 CommunicationObject)

明確介面實作

IDisposable.Dispose()

關閉目前的通道處理站。

(繼承來源 ChannelFactory)

適用於