ChannelFactory Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает каналы, используемые клиентами для отправки сообщений в конечные точки службы, и управляет ими.
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::Channels::IChannelFactory
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IAsyncDisposable, IDisposable, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.Channels.IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IAsyncDisposable, IDisposable, System.ServiceModel.Channels.IChannelFactory
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
interface IAsyncDisposable
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IChannelFactory, IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IAsyncDisposable, IChannelFactory, IDisposable
- Наследование
- Производный
- Реализации
В следующем примере кода показано, как программно вставить поведение клиента до создания объекта канала фабрикой.
public class Client
{
public static void Main()
{
try
{
// Picks up configuration from the config file.
ChannelFactory<ISampleServiceChannel> factory
= new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");
// Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());
ISampleServiceChannel wcfClientChannel = factory.CreateChannel();
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClientChannel.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.Read();
}
catch (FaultException<SampleFault> fault)
{
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
Console.Read();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.Read();
}
}
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub
Фабрики каналов, реализующие интерфейс IChannelFactory и связанные с ними каналы, обычно используются инициаторами шаблона связи. Фабрики прослушивателей, реализующие интерфейс IChannelListener и связанные с ними прослушиватели, предоставляют механизмы, с которыми принимаются каналы для обмена данными.
Этот класс не является частью модели канала, а модели службы. Метод CreateFactory предоставляет средства для создания IChannelFactory для конечной точки службы. Используйте его для создания клиента, который подключается к контракту интерфейса в службе без использования метаданных или политики.
Ескерім
Установка ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
для TokenImpersonationLevel.Anonymous
всегда приводит к анонимному входу независимо от уровня олицетворения.
Специальное примечание для пользователей Managed C++, производных от этого класса:
Поместите код очистки в (On)(Begin)Close (and/or OnAbort), а не в деструктор.
Избегайте деструкторов; они вызывают автоматическое создание IDisposableкомпилятором.
Избегайте элементов без ссылок; они могут вызвать автоматическое создание IDisposableкомпилятором.
Избегайте использования средства завершения; но если включить его, необходимо отключить предупреждение сборки и вызвать SuppressFinalize(Object) и сам метод завершения из (On)(Begin)Close (and/or OnAbort), чтобы эмулировать то, что было бы автоматически созданным IDisposable поведением.
При программном добавлении поведения поведение добавляется в соответствующее свойство Behaviors
на ChannelFactory до создания любого канала. См. пример раздела кода.
Channel |
Инициализирует новый экземпляр класса ChannelFactory. |
Credentials |
Возвращает учетные данные, используемые клиентами для обмена данными конечной точки службы по каналам, созданным фабрикой. |
Default |
Возвращает интервал времени по умолчанию, предоставленный для завершения операции закрытия. |
Default |
Возвращает интервал времени по умолчанию, предоставленный для завершения открытой операции. |
Endpoint |
Возвращает конечную точку службы, к которой подключаются каналы, созданные фабрикой. |
Is |
Возвращает значение, указывающее, был ли удален объект связи. (Унаследовано от CommunicationObject) |
State |
Возвращает значение, указывающее текущее состояние объекта связи. (Унаследовано от CommunicationObject) |
This |
Получает взаимоисключающую блокировку, которая защищает экземпляр класса во время перехода состояния. (Унаследовано от CommunicationObject) |
Abort() |
Вызывает немедленное переход объекта связи из текущего состояния в закрывающемся состоянии. (Унаследовано от CommunicationObject) |
Apply |
Инициализирует фабрику каналов с поведением, предоставляемым указанным файлом конфигурации, и с теми, которые указаны в конечной точке службы фабрики каналов. |
Begin |
Начинает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
Begin |
Начинает асинхронную операцию закрытия объекта связи с заданным временем ожидания. (Унаследовано от CommunicationObject) |
Begin |
Начинает асинхронную операцию для открытия объекта связи. (Унаследовано от CommunicationObject) |
Begin |
Начинает асинхронную операцию открытия объекта связи в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
Close() |
Вызывает переход объекта связи из текущего состояния в закрытое состояние. (Унаследовано от CommunicationObject) |
Close(Time |
Вызывает переход объекта связи из текущего состояния в закрытое состояние в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
Create |
При реализации в производном классе создает описание конечной точки службы, связанной с фабрикой каналов. |
Create |
Создает фабрику каналов для текущей конечной точки фабрики. |
End |
Завершает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
End |
Завершает асинхронную операцию для открытия объекта связи. (Унаследовано от CommunicationObject) |
Ensure |
Открывает текущую фабрику каналов, если она еще не открыта. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Fault() |
Вызывает переход объекта связи из текущего состояния в состояние сбоя. (Унаследовано от CommunicationObject) |
Get |
Возвращает тип объекта связи. (Унаследовано от CommunicationObject) |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает запрошенный типизированный объект( если он присутствует) из соответствующего слоя в стеке каналов или |
Get |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
Initialize |
Инициализирует конечную точку службы фабрики каналов с указанными привязками и адресом. |
Initialize |
Инициализирует конечную точку службы фабрики каналов с указанной конечной точкой. |
Initialize |
Инициализирует конечную точку службы фабрики каналов с указанным адресом и конфигурацией. |
Memberwise |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
On |
Завершает внутреннюю фабрику каналов текущей фабрики каналов. |
On |
Начинает асинхронную операцию закрытия на внутренней фабрике каналов текущей фабрики каналов с объектом состояния, связанным с ним. |
On |
Начинает асинхронную операцию открытия на внутренней фабрике каналов текущей фабрики каналов, которая имеет объект состояния, связанный с ним. |
On |
Вызовы закрываются на внутренней фабрике каналов с указанным временем ожидания для завершения операции. |
On |
Вызывается во время перехода объекта связи в закрываемое состояние. (Унаследовано от CommunicationObject) |
On |
Вызывается во время перехода объекта связи в закрываемое состояние. (Унаследовано от CommunicationObject) |
On |
Завершает асинхронную операцию закрытия на внутренней фабрике каналов текущей фабрики каналов. |
On |
Завершает асинхронную операцию открытия на внутренней фабрике каналов текущей фабрики каналов. |
On |
Вставляет обработку в объект связи после перехода в состояние сбоя из-за вызова синхронной операции сбоя. (Унаследовано от CommunicationObject) |
On |
Вызовы открываются на внутренней фабрике каналов текущей фабрики каналов с указанным временем ожидания для завершения операции. |
On |
Инициализирует копию объекта ClientCredentials только для чтения для фабрики каналов. |
On |
Создает внутреннюю фабрику каналов для текущего канала. |
Open() |
Вызывает переход объекта связи из созданного состояния в открытое состояние. (Унаследовано от CommunicationObject) |
Open(Time |
Вызывает переход объекта связи из созданного состояния в открытое состояние в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
Throw |
Создает исключение, если объект связи удаляется. (Унаследовано от CommunicationObject) |
Throw |
Создает исключение, если объект связи State свойству не задано состояние Created. (Унаследовано от CommunicationObject) |
Throw |
Создает исключение, если объект связи не находится в состоянии Opened. (Унаследовано от CommunicationObject) |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Closed |
Происходит при переходе объекта связи в закрытое состояние. (Унаследовано от CommunicationObject) |
Closing |
Происходит при переходе объекта связи в состояние закрытия. (Унаследовано от CommunicationObject) |
Faulted |
Происходит при переходе объекта связи в состояние сбоя. (Унаследовано от CommunicationObject) |
Opened |
Происходит при переходе объекта связи в открытое состояние. (Унаследовано от CommunicationObject) |
Opening |
Происходит при переходе объекта связи в открытое состояние. (Унаследовано от CommunicationObject) |
IAsync |
Создает каналы, используемые клиентами для отправки сообщений в конечные точки службы, и управляет ими. |
IDisposable. |
Закрывает текущую фабрику каналов. |
Configure |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |
Өнім | Нұсқалар |
---|---|
.NET | Core 1.0, Core 1.1, 8 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
UWP | 10.0 |
.NET кері байланысы
.NET — бастапқы коды ашық жоба. Пікір қалдыру үшін сілтемені таңдаңыз: