WebChannelFactory<TChannel> 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于访问客户端上的 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 添加到终结点。
如果协定的所有操作都没有返回值,或者具有类型为 Stream 的返回值,则 WebChannelFactory<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) |
方法
事件
Closed |
当通信对象转换到已关闭状态时发生。 (继承自 CommunicationObject) |
Closing |
当通信对象转换到正在关闭状态时发生。 (继承自 CommunicationObject) |
Faulted |
在通信对象转换到出错状态时发生。 (继承自 CommunicationObject) |
Opened |
当通信对象转换到已打开状态时发生。 (继承自 CommunicationObject) |
Opening |
当通信对象转换到正在打开状态时发生。 (继承自 CommunicationObject) |
显式接口实现
IDisposable.Dispose() |
关闭当前的通道工厂。 (继承自 ChannelFactory) |