ChannelFactory Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir.
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 IChannelFactory
interface ICommunicationObject
interface IDisposable
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
- Devralma
- Türetilmiş
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, kanal nesnesini fabrika tarafından oluşturmadan önce program aracılığıyla 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
Arabirimi uygulayan IChannelFactory kanal fabrikaları ve ilişkili kanalları genellikle iletişim deseninin başlatıcıları tarafından kullanılır. Arabirimi uygulayan IChannelListener dinleyici fabrikaları ve ilişkili dinleyicileri, kanalların iletişim için kabul edildiği mekanizmaları sağlar.
Bu sınıf kanal modelinin değil hizmet modelinin bir parçasıdır. yöntemi, CreateFactory bir hizmet uç noktası için oluşturma IChannelFactory araçları sağlar. Meta verileri veya ilkeyi kullanmadan hizmetteki bir arabirim sözleşmesine bağlı bir istemci oluşturmak için kullanın.
Not
ayarı ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
, TokenImpersonationLevel.Anonymous
kimliğe bürünme düzeyinden bağımsız olarak her zaman anonim oturum açmayla sonuçlanıyor.
Bu sınıftan türetilen Yönetilen C++ kullanıcıları için özel not:
Temizleme kodunuzu bir yıkıcıya değil (On)(Begin)Close (ve/veya OnAbort) içine yerleştirin.
Yıkıcılardan kaçının; derleyicinin otomatik olarak oluşturmasına IDisposableneden olur.
Başvuru olmayan üyelerden kaçının; derleyicinin otomatik olarak oluşturmasına IDisposableneden olabilir.
Sonlandırıcı kullanmaktan kaçının; ancak bir tane eklerseniz, otomatik olarak oluşturulan IDisposable davranışın ne olduğunu öykünmek için derleme uyarısını ve çağrısını SuppressFinalize(Object) ve sonlandırıcıyı (On)(Begin)Close (ve/veya OnAbort) öğesinden gizlemeniz gerekir.
Davranışları program aracılığıyla eklerken, davranış herhangi bir kanalın oluşturulmasından önce üzerindeki ChannelFactory uygun Behaviors
özelliğe eklenir. Kod örneği için örnek bölüme bakın.
Oluşturucular
ChannelFactory() |
ChannelFactory 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. |
DefaultCloseTimeout |
Kapatma işleminin tamamlanması için sağlanan varsayılan zaman aralığını alır. |
DefaultOpenTimeout |
Bir açma işleminin tamamlanması için sağlanan varsayılan zaman aralığını alır. |
Endpoint |
Fabrika tarafından üretilen kanalların bağlandığı hizmet uç noktasını alır. |
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çişine 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. |
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) |
Belirli bir zaman aşımıyla 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() |
İletişim nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: CommunicationObject) |
Close(TimeSpan) |
Belirli bir zaman aralığı içinde iletişim nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: CommunicationObject) |
CreateDescription() |
Türetilmiş bir sınıfta uygulandığında, kanal fabrikasıyla ilişkili hizmet uç noktasının açıklamasını oluşturur. |
CreateFactory() |
Fabrikanın geçerli uç noktası için kanal fabrikasını oluşturur. |
EndClose(IAsyncResult) |
İletiş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. |
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 veya |
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. |
InitializeEndpoint(EndpointAddress) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
InitializeEndpoint(ServiceEndpoint) |
Kanal fabrikasının hizmet uç noktasını belirtilen uç noktayla başlatır. |
InitializeEndpoint(String, EndpointAddress) |
Kanal fabrikasının hizmet uç noktasını belirtilen adres ve yapılandırmayla başlatır. |
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. |
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. |
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. |
OnClose(TimeSpan) |
çağrıları, işlemin tamamlanması için belirtilen bir zaman aşımı ile iç kanal fabrikasında kapatır. |
OnCloseAsync(TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
OnCloseAsync(TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. (Devralındığı yer: CommunicationObject) |
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. |
OnEndOpen(IAsyncResult) |
Geçerli kanal fabrikasının iç kanal fabrikasında zaman uyumsuz bir açma işlemini tamamlar. |
OnFaulted() |
Zaman uyumlu bir 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. |
OnOpenAsync(TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
OnOpenAsync(TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. (Devralındığı yer: CommunicationObject) |
OnOpened() |
Kanal fabrikası için nesnenin ClientCredentials salt okunur bir kopyasını başlatır. |
OnOpening() |
Geçerli kanal için iç kanal fabrikasını oluşturur. |
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() |
Ö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 hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. (Devralındığı yer: CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. (Devralındığı yer: CommunicationObject) |
IAsyncDisposable.DisposeAsync() |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
IDisposable.Dispose() |
Geçerli kanal fabrikasını kapatır. |
Uzantı Metotları
CloseHelperAsync(ICommunicationObject, TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
GetInternalCloseTimeout(CommunicationObject) |
İstemciler tarafından hizmet uç noktalarına ileti göndermek için kullanılan kanalları oluşturur ve yönetir. |
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ırılır. |
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin