Aracılığıyla paylaş


DuplexChannelFactory<TChannel> Sınıf

Tanım

İstemciler tarafından hizmet uç noktalarına ileti gönderip almak için kullanılan farklı türlerdeki çift yönlü kanalları oluşturma ve yönetme araçları sağlar.

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

Tür Parametreleri

TChannel

Kanal fabrikası tarafından üretilen kanal türü.

Devralma
Türetilmiş

Örnekler

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

// Construct InstanceContext to handle messages on the callback interface.
// An instance of ChatApp is created and passed to the InstanceContext.
    InstanceContext site = new InstanceContext(new ChatApp());

// Create the participant with the given endpoint configuration.
// Each participant opens a duplex channel to the mesh.
// Participant is an instance of the chat application that has opened a channel to the mesh.

    using (DuplexChannelFactory<IChatChannel> cf =
        new DuplexChannelFactory<IChatChannel>(site,"ChatEndpoint"))
    {
        X509Certificate2 issuer = GetCertificate(
            StoreName.CertificateAuthority,
            StoreLocation.CurrentUser, "CN=" + issuerName,
            X509FindType.FindBySubjectDistinguishedName);
        cf.Credentials.Peer.Certificate =
            GetCertificate(StoreName.My,
            StoreLocation.CurrentUser,
            "CN=" + member,
            X509FindType.FindBySubjectDistinguishedName);
        cf.Credentials.Peer.PeerAuthentication.CertificateValidationMode  =
            X509CertificateValidationMode.Custom;
        cf.Credentials.Peer.PeerAuthentication.CustomCertificateValidator =
            new IssuerBasedValidator();

        using (IChatChannel participant = cf.CreateChannel())
        {
    // Retrieve the PeerNode associated with the participant and register for online/offline events.
    // PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
            IOnlineStatus ostat = participant.GetProperty<IOnlineStatus>();
            ostat.Online += new EventHandler(OnOnline);
            ostat.Offline += new EventHandler(OnOffline);

            Console.WriteLine("{0} is ready", member);
            Console.WriteLine("Press <ENTER> to send the chat message.");

    // Announce self to other participants.
            participant.Join(member);
            Console.ReadLine();
            participant.Chat(member, "Hi there - I am chatting");

            Console.WriteLine("Press <ENTER> to terminate this instance of chat.");
            Console.ReadLine();
    // Leave the mesh and close the client.
            participant.Leave(member);
        }
    }

Açıklamalar

Çift yönlü kanal, istemcilerin ve sunucuların birbirleriyle bağımsız olarak iletişim kurmasına olanak tanır, böylece diğeriyle çağrılar başlatılabilir. Çift yönlü hizmet istemci uç noktasına ileti göndererek olay benzeri davranışlar sağlayabilir. Çift yönlü iletişim, istemci bir hizmetle oturum oluşturduğunda ve hizmete hizmetin istemciye ileti gönderebileceği bir kanal sağladığında gerçekleşir. Bu çift yönlü kanalları oluşturmak için çeşitli CreateChannel yöntemleri kullanılır. Çift yönlü ileti düzeni, Windows Communication Foundation (WCF) hizmetlerinde kullanılabilen üç ileti desenlerinden biridir. Diğer iki ileti deseni tek yönlü ve istek-yanıt şeklindedir.

İstemcilerin hizmete geri bağlanmasına olanak sağlayan çift yönlü hizmetler hakkında genel bir tartışma için bkz. Çift Yönlü Hizmetler. Kanal fabrikası kullanarak Bir Windows Communication Foundation (WCF) istemci uygulaması yazmayla ilgili adımların ana hatlarını ve tartışmalarını görmek için bkz. Nasıl yapılır: ChannelFactorykullanma . Çift yönlü mesajlaşma düzeni kullanan bir hizmete erişmek için geri çağırma arabirimini uygulayan bir istemci sınıfında Windows Communication Foundation (WCF) istemcisi oluşturmayı açıklayan bir yordam için bkz. Nasıl yapılır: Çift Yönlü Anlaşma ile Hizmetlere Erişme.

Oluşturucular

DuplexChannelFactory<TChannel>(InstanceContext)

Belirtilen örnek bağlamıyla DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, Binding)

Geri çağırma sözleşmesini ve belirtilen bağlamayı uygulayan bir bağlamla DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress)

geri çağırma sözleşmesini ve belirtilen bağlama ve uç nokta adresini uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, String)

Belirtilen örnek bağlamı, bağlama ve uzak adres ile DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint)

Geri çağırma sözleşmesini ve belirtilen uç noktayı uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, String)

Geri çağırma sözleşmesini ve belirtilen yapılandırmayı uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)

DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini, geri çağırma sözleşmesini uygulayan bir nesneyle ve belirtilen yapılandırma ve uç nokta adresiyle başlatır.

DuplexChannelFactory<TChannel>(Object)

Geri çağırma sözleşmesini uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, Binding)

Geri çağırma sözleşmesini ve belirtilen bağlamayı uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress)

geri çağırma sözleşmesini ve belirtilen bağlama ve uç nokta adresini uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, Binding, String)

Belirtilen geri çağırma nesnesi, bağlama ve uzak adres ile DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, ServiceEndpoint)

Geri çağırma sözleşmesini ve belirtilen uç noktayı uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, String)

Geri çağırma sözleşmesini ve belirtilen yapılandırmayı uygulayan bir nesneyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Object, String, EndpointAddress)

DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini, geri çağırma sözleşmesini uygulayan bir nesneyle ve belirtilen yapılandırma ve uç nokta adresiyle başlatır.

DuplexChannelFactory<TChannel>(Type)

Belirtilen geri çağırma örneği türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, Binding)

Belirtilen geri çağırma örneği ve bağlama türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress)

Belirtilen geri çağırma örneği, bağlama ve uzak adres türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, Binding, String)

Belirtilen geri çağırma örneği, bağlama ve uzak adres türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, ServiceEndpoint)

Belirtilen geri çağırma örneği ve hizmet uç noktası türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, String)

Belirtilen geri çağırma örneği ve yapılandırması türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

DuplexChannelFactory<TChannel>(Type, String, EndpointAddress)

Belirtilen geri çağırma örneği, yapılandırma ve uzak adres türüyle DuplexChannelFactory<TChannel> sınıfının yeni bir örneğini başlatır.

Özellikler

Credentials

İstemciler tarafından fabrika tarafından üretilen kanallar üzerinden hizmet uç noktası iletişim kurmak 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çık işlemin 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()

İletişim nesnesinin geçerli durumundan kapanış durumuna hemen geçmesine neden olur.

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

Kanal fabrikasını, belirtilen 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)

İletiş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 nesnesini açmak için zaman uyumsuz bir işlem başlatır.

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

İletiş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.

(Devralındığı yer: ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

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

(Devralındığı yer: ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext, Binding, EndpointAddress)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext, Binding, EndpointAddress, Uri)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext, EndpointAddress)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext, EndpointAddress, Uri)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(InstanceContext, String)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(Object, Binding, EndpointAddress)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(Object, Binding, EndpointAddress, Uri)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannel(Object, String)

İstemcideki bir hizmet ile geri çağırma örneği arasında çift yönlü bir kanal oluşturur.

CreateChannelWithActAsToken(SecurityToken)

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

(Devralındığı yer: ChannelFactory<TChannel>)
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.

(Devralındığı yer: ChannelFactory<TChannel>)
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.

(Devralındığı yer: ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

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

(Devralındığı yer: ChannelFactory<TChannel>)
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.

(Devralındığı yer: ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

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

(Devralındığı yer: ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

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

(Devralındığı yer: ChannelFactory<TChannel>)
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.

(Devralındığı yer: ChannelFactory<TChannel>)
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.

(Devralındığı yer: ChannelFactory<TChannel>)
CreateDescription()

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

(Devralındığı yer: ChannelFactory<TChannel>)
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)

İletiş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()

İletiş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 istenen türü belirtilen nesneyi veya yoksa null döndürür.

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

Geçerli örneğin Type 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(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 bir adres ve yapılandırmayla başlatır.

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

Geçerli Objectbasit 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)

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

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

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

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

bir iletiş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 hata işleminin çağrılması nedeniyle hatalı duruma geçtikten sonra bir iletişim nesnesine işleme ekler.

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

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

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

Kanal fabrikası için ClientCredentials nesnesinin 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 belirli bir zaman aralığı içinde oluşturulan durumdan 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()

State özelliği iletişim nesnesi Created durumuna ayarlanmadıysa bir özel durum oluşturur.

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

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

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

Geçerli nesneyi temsil eden bir dize 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 kapatma 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ı

IAsyncDisposable.DisposeAsync()

İstemciler tarafından hizmet uç noktalarına ileti gönderip almak için kullanılan farklı türlerdeki çift yönlü kanalları oluşturma ve yönetme araçları sağlar.

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

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

(Devralındığı yer: ChannelFactory)

Uzantı Metotları

ConfigureAwait(IAsyncDisposable, Boolean)

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

Şunlara uygulanır