ChannelFactory<TChannel> Sınıf

Tanım

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

generic <typename TChannel>
public ref class ChannelFactory : System::ServiceModel::ChannelFactory, System::ServiceModel::Channels::IChannelFactory<TChannel>
public class ChannelFactory<TChannel> : System.ServiceModel.ChannelFactory, System.ServiceModel.Channels.IChannelFactory<TChannel>
type ChannelFactory<'Channel> = class
    inherit ChannelFactory
    interface IChannelFactory
    interface ICommunicationObject
    interface IChannelFactory<'Channel>
type ChannelFactory<'Channel> = class
    inherit ChannelFactory
    interface IChannelFactory<'Channel>
    interface IChannelFactory
    interface ICommunicationObject
Public Class ChannelFactory(Of TChannel)
Inherits ChannelFactory
Implements IChannelFactory(Of TChannel)

Tür Parametreleri

TChannel

Kanal fabrikası tarafından üretilen kanal türü. Bu tür veya IOutputChannelIRequestChannelolmalıdır.

Devralma
ChannelFactory<TChannel>
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnekte kanal fabrikası oluşturma ve kanal oluşturmak ve yönetmek için bu fabrikayı kullanma adımları gösterilmektedir.

    BasicHttpBinding binding = new BasicHttpBinding();
    EndpointAddress address = new EndpointAddress("http://localhost:8000/ChannelApp");

    ChannelFactory<IRequestChannel> factory =
        new ChannelFactory<IRequestChannel>(binding, address);

    IRequestChannel channel = factory.CreateChannel();
    channel.Open();
    Message request = Message.CreateMessage(MessageVersion.Soap11, "hello");
    Message reply = channel.Request(request);
    Console.Out.WriteLine(reply.Headers.Action);
    reply.Close();
    channel.Close();
    factory.Close();
}

Aşağıdaki kod örneği, kanal nesnesini fabrika tarafından oluşturmadan önce program aracılığıyla bir istemci davranışının nasıl ekleyebileceğinizi gösterir.

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

Açıklamalar

Bu genel sınıf, birden fazla kanal türü oluşturmak için kullanılabilecek bir kanal fabrikası oluşturma gereksiniminin olduğu daha gelişmiş senaryolara olanak tanır.

Program aracılığıyla davranış eklerken, davranış herhangi bir kanal oluşturulmadan önce üzerinde ChannelFactory uygun Behaviors özelliğe eklenir. Kod örneği için örnek bölüme bakın.

Bu türü kullanan istemci veya çağrı uygulamaları (örneğin, orta katman uygulamaları da istemci uygulamalarıdır) ayrıca karmaşık durum yönetimi gereksinimlerine ve performans gereksinimlerine sahiptir. Bu senaryolar hakkında daha fazla bilgi için bkz. Orta Katman İstemci Uygulamaları.

Oluşturucular

ChannelFactory<TChannel>()

ChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

ChannelFactory<TChannel>(Binding)

ChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

ChannelFactory<TChannel>(Binding, EndpointAddress)

Belirtilen bağlama ve uç nokta adresiyle sınıfının yeni bir örneğini ChannelFactory<TChannel> başlatır.

ChannelFactory<TChannel>(Binding, String)

Belirtilen bağlama ve uzak adresle sınıfının yeni bir örneğini ChannelFactory<TChannel> başlatır.

ChannelFactory<TChannel>(ServiceEndpoint)

Belirtilen uç nokta ile kanal üreten sınıfının yeni bir örneğini ChannelFactory<TChannel> başlatır.

ChannelFactory<TChannel>(String)

Belirtilen uç nokta yapılandırma adıyla sınıfının yeni bir örneğini ChannelFactory<TChannel> başlatır.

ChannelFactory<TChannel>(String, EndpointAddress)

Uç nokta yapılandırması ve uzak adres için belirtilen adla ilişkilendirilmiş sınıfın yeni bir örneğini ChannelFactory<TChannel> başlatır.

ChannelFactory<TChannel>(Type)

ChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

Özellikler

Credentials

İstemciler tarafından fabrika tarafından üretilen kanallar üzerinden bir hizmet uç noktasını iletmek için kullanılan kimlik bilgilerini alır.

(Devralındığı yer: ChannelFactory)
DefaultCloseTimeout

Kapatma işleminin tamamlanması için sağlanan varsayılan zaman aralığını alır.

(Devralındığı yer: ChannelFactory)
DefaultOpenTimeout

Açma işleminin tamamlanması için sağlanan varsayılan zaman aralığını alır.

(Devralındığı yer: ChannelFactory)
Endpoint

Fabrika tarafından üretilen kanalların bağlandığı hizmet uç noktasını alır.

(Devralındığı yer: ChannelFactory)
IsDisposed

İletişim nesnesinin atılıp atılmadığını gösteren bir değer alır.

(Devralındığı yer: CommunicationObject)
State

İletişim nesnesinin geçerli durumunu gösteren bir değer alır.

(Devralındığı yer: CommunicationObject)
ThisLock

Durum geçişi sırasında sınıf örneğini koruyan birbirini dışlayan kilidi alır.

(Devralındığı yer: CommunicationObject)

Yöntemler

Abort()

bir iletişim nesnesinin geçerli durumundan kapanış durumuna hemen geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
ApplyConfiguration(String)

Kanal fabrikasını, belirtilen bir yapılandırma dosyası tarafından sağlanan davranışlarla ve kanal fabrikasının hizmet uç noktasındakilerle başlatır.

(Devralındığı yer: ChannelFactory)
BeginClose(AsyncCallback, Object)

bir iletişim nesnesini kapatmak için zaman uyumsuz bir işlem başlatır.

(Devralındığı yer: CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Belirtilen zaman aşımına sahip bir iletişim nesnesini kapatmak için zaman uyumsuz bir işlem başlatır.

(Devralındığı yer: CommunicationObject)
BeginOpen(AsyncCallback, Object)

İletişim nesnesini açmak için zaman uyumsuz bir işlem başlatır.

(Devralındığı yer: CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Belirli bir zaman aralığı içinde bir iletişim nesnesi açmak için zaman uyumsuz bir işlem başlatır.

(Devralındığı yer: CommunicationObject)
Close()

bir iletişim nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
Close(TimeSpan)

Bir iletişim nesnesinin belirli bir zaman aralığı içinde geçerli durumundan kapalı duruma geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
CreateChannel()

Belirtilen uç nokta adresine belirtilen türde bir kanal oluşturur.

CreateChannel(Binding, EndpointAddress)

Belirtilen bağlamayla yapılandırılmış bir hizmet uç noktasına ileti göndermek için kullanılan belirtilen türde bir kanal oluşturur.

CreateChannel(Binding, EndpointAddress, Uri)

Belirtilen bağlamayla yapılandırılan belirtilen aktarım adresinde bir hizmet uç noktasına ileti göndermek için kullanılan belirtilen türde bir kanal oluşturur.

CreateChannel(EndpointAddress)

Belirli bir uç nokta adresinde bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannel(EndpointAddress, Uri)

Belirli bir aktarım adresi aracılığıyla belirli bir uç nokta adresinde bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannel(String)

Uç noktası belirtilen şekilde yapılandırılmış bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithActAsToken(SecurityToken)

Güvenlik belirteci olarak davranan bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Belirli bir uç nokta adresinde güvenlik belirteci olarak davranan bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Belirli bir aktarım adresi aracılığıyla belirli bir uç nokta adresinde güvenlik belirteci olarak davranan bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithIssuedToken(SecurityToken)

Verilen güvenlik belirteciyle bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Belirli bir uç nokta adresinde verilen güvenlik belirtecine sahip bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Belirli bir aktarım adresi aracılığıyla belirli bir uç nokta adresinde verilen bir güvenlik belirtecine sahip bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithOnBehalfOfToken(SecurityToken)

Bir hizmete güvenlik belirteci adına ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Belirli bir uç nokta adresinde güvenlik belirteci adına bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Belirli bir aktarım adresi aracılığıyla belirli bir uç nokta adresinde güvenlik belirteci adına bir hizmete ileti göndermek için kullanılan bir kanal oluşturur.

CreateDescription()

Hizmet uç noktasının açıklamasını oluşturur.

CreateFactory()

Fabrikanın geçerli uç noktası için kanal fabrikasını oluşturur.

(Devralındığı yer: ChannelFactory)
EndClose(IAsyncResult)

bir iletişim nesnesini kapatmak için zaman uyumsuz bir işlemi tamamlar.

(Devralındığı yer: CommunicationObject)
EndOpen(IAsyncResult)

bir iletişim nesnesini açmak için zaman uyumsuz bir işlemi tamamlar.

(Devralındığı yer: CommunicationObject)
EnsureOpened()

Henüz açılmamışsa geçerli kanal fabrikasını açar.

(Devralındığı yer: ChannelFactory)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Fault()

bir iletişim nesnesinin geçerli durumundan hatalı duruma geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
GetCommunicationObjectType()

İletişim nesnesinin türünü alır.

(Devralındığı yer: CommunicationObject)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetProperty<T>()

Kanal yığınındaki uygun katmandan veya null yoksa, istenen türü belirtilen nesneyi (varsa) döndürür.

(Devralındığı yer: ChannelFactory)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeEndpoint(Binding, EndpointAddress)

Kanal fabrikasının hizmet uç noktasını belirtilen bağlama ve adresle başlatır.

(Devralındığı yer: ChannelFactory)
InitializeEndpoint(EndpointAddress)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Kanal fabrikasının hizmet uç noktasını belirtilen uç noktayla başlatır.

(Devralındığı yer: ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Kanal fabrikasının hizmet uç noktasını belirtilen adres ve yapılandırmayla başlatır.

(Devralındığı yer: ChannelFactory)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnAbort()

Geçerli kanal fabrikasının iç kanal fabrikasını sonlandırır.

(Devralındığı yer: ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

İlişkili bir durum nesnesi olan geçerli kanal fabrikasının iç kanal fabrikasında zaman uyumsuz bir kapatma işlemi başlatır.

(Devralındığı yer: ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

İlişkili bir durum nesnesi olan geçerli kanal fabrikasının iç kanal fabrikasında zaman uyumsuz bir açma işlemi başlatır.

(Devralındığı yer: ChannelFactory)
OnClose(TimeSpan)

İşlemin tamamlanması için belirtilen zaman aşımıyla iç kanal fabrikasında kapatır.

(Devralındığı yer: ChannelFactory)
OnCloseAsync(TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: ChannelFactory)
OnClosed()

İletişim nesnesinin kapanış durumuna geçişi sırasında çağrılır.

(Devralındığı yer: CommunicationObject)
OnClosing()

İletişim nesnesinin kapanış durumuna geçişi sırasında çağrılır.

(Devralındığı yer: CommunicationObject)
OnEndClose(IAsyncResult)

Geçerli kanal fabrikasının iç kanal fabrikasında zaman uyumsuz kapatma işlemini tamamlar.

(Devralındığı yer: ChannelFactory)
OnEndOpen(IAsyncResult)

Geçerli kanal fabrikasının iç kanal fabrikasında zaman uyumsuz bir açma işlemini tamamlar.

(Devralındığı yer: ChannelFactory)
OnFaulted()

Zaman uyumlu bir hata işleminin çağrılması nedeniyle hata durumuna geçtikten sonra bir iletişim nesnesine işleme ekler.

(Devralındığı yer: CommunicationObject)
OnOpen(TimeSpan)

İşlemin tamamlanması için belirtilen zaman aşımıyla geçerli kanal fabrikasının iç kanal fabrikasında açık çağrılar.

(Devralındığı yer: ChannelFactory)
OnOpenAsync(TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: ChannelFactory)
OnOpened()

Kanal fabrikası için nesnenin ClientCredentials salt okunur bir kopyasını başlatır.

(Devralındığı yer: ChannelFactory)
OnOpening()

Geçerli kanal için iç kanal fabrikasını oluşturur.

(Devralındığı yer: ChannelFactory)
Open()

Bir iletişim nesnesinin oluşturulan durumdan açık duruma geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
Open(TimeSpan)

Bir iletişim nesnesinin oluşturulan durumdan belirli bir zaman aralığı içinde açık duruma geçmesine neden olur.

(Devralındığı yer: CommunicationObject)
ThrowIfDisposed()

İletişim nesnesi atılırsa bir özel durum oluşturur.

(Devralındığı yer: CommunicationObject)
ThrowIfDisposedOrImmutable()

Özelliğin durum olarak ayarlanmadığı Created iletişim nesnesi State bir özel durum oluşturur.

(Devralındığı yer: CommunicationObject)
ThrowIfDisposedOrNotOpen()

İletişim nesnesi durumunda değilse Opened bir özel durum oluşturur.

(Devralındığı yer: CommunicationObject)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Ekinlikler

Closed

Bir iletişim nesnesi kapalı duruma geçtiğinde gerçekleşir.

(Devralındığı yer: CommunicationObject)
Closing

Bir iletişim nesnesi kapanış durumuna geçtiğinde gerçekleşir.

(Devralındığı yer: CommunicationObject)
Faulted

Bir iletişim nesnesi hatalı duruma geçtiğinde gerçekleşir.

(Devralındığı yer: CommunicationObject)
Opened

Bir iletişim nesnesi açık duruma geçtiğinde gerçekleşir.

(Devralındığı yer: CommunicationObject)
Opening

Bir iletişim nesnesi açma durumuna geçtiğinde gerçekleşir.

(Devralındığı yer: CommunicationObject)

Belirtik Arabirim Kullanımları

IAsyncCommunicationObject.CloseAsync(TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: CommunicationObject)
IAsyncDisposable.DisposeAsync()

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

(Devralındığı yer: ChannelFactory)
IDisposable.Dispose()

Geçerli kanal fabrikasını kapatır.

(Devralındığı yer: ChannelFactory)

Uzantı Metotları

CloseHelperAsync(ICommunicationObject, TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

OpenHelperAsync(ICommunicationObject, TimeSpan)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

GetInternalCloseTimeout(CommunicationObject)

İstemciler tarafından çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan farklı türlerde kanallar oluşturan bir fabrika.

ConfigureAwait(IAsyncDisposable, Boolean)

Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirildiğini yapılandıran.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu güvenli iş parçacığı türüdür.