IEndpointBehavior Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan metode yang dapat digunakan untuk memperluas perilaku run-time untuk titik akhir baik di layanan atau aplikasi klien.
public interface class IEndpointBehavior
public interface IEndpointBehavior
type IEndpointBehavior = interface
Public Interface IEndpointBehavior
- Turunan
Contoh
Contoh kode berikut menunjukkan implementasi perilaku titik akhir yang menambahkan System.ServiceModel.Dispatcher.IDispatchMessageInspector objek dalam aplikasi layanan. Dalam hal ini, EndpointBehaviorMessageInspector kelas mengimplementasikan System.ServiceModel.Dispatcher.IDispatchMessageInspector untuk memeriksa pesan masuk dan keluar, IEndpointBehavior antarmuka untuk memasukkan kelas inspektur ke dalam sistem inspeksi untuk semua titik akhir yang perilakunya berlaku, dan System.ServiceModel.Configuration.BehaviorExtensionElement untuk mengaktifkan perilaku pemeriksa pesan menggunakan file konfigurasi aplikasi.
Langkah pertama adalah mengimplementasikan pemeriksa pesan.
// IDispatchMessageInspector Members
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel, InstanceContext instanceContext)
{
Console.WriteLine("AfterReceiveRequest called.");
return null;
}
public void BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
Console.WriteLine("BeforeSendReply called.");
}
Contoh kode berikutnya menunjukkan penggunaan ApplyDispatchBehavior metode untuk menambahkan pemeriksa pesan ke DispatchRuntime.MessageInspectors properti .
// IEndpointBehavior Members
public void AddBindingParameters(ServiceEndpoint serviceEndpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
return;
}
public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
{
behavior.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}
public void ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher)
{
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}
public void Validate(ServiceEndpoint serviceEndpoint)
{
return;
}
Contoh kode berikut menunjukkan implementasi System.ServiceModel.Configuration.BehaviorExtensionElement untuk mengaktifkan penggunaan perilaku pemeriksa pesan dari file konfigurasi.
// BehaviorExtensionElement members
public override Type BehaviorType
{
get { return typeof(EndpointBehaviorMessageInspector); }
}
protected override object CreateBehavior()
{
return new EndpointBehaviorMessageInspector();
}
Terakhir, file konfigurasi berikut menunjukkan bagaimana contoh sebelumnya dapat digunakan dari konfigurasi.
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.WCF.Documentation.SampleService"
behaviorConfiguration="metadataSupport"
>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/ServiceMetadata" />
</baseAddresses>
</host>
<endpoint
address="/SampleService"
binding="wsHttpBinding"
behaviorConfiguration="withMessageInspector"
contract="Microsoft.WCF.Documentation.ISampleService"
/>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadataSupport">
<serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="withMessageInspector">
<endpointMessageInspector />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add
name="endpointMessageInspector"
type="Microsoft.WCF.Documentation.EndpointBehaviorMessageInspector, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
</configuration>
Keterangan
Terapkan IEndpointBehavior antarmuka untuk memodifikasi, memeriksa, atau memperluas beberapa aspek eksekusi di seluruh titik akhir di tingkat aplikasi untuk aplikasi klien atau layanan.
Gunakan metode untuk meneruskan AddBindingParameters data kustom pada runtime untuk mengaktifkan pengikatan untuk mendukung perilaku kustom.
ApplyClientBehavior Gunakan metode untuk memodifikasi, memeriksa, atau menyisipkan ekstensi ke titik akhir dalam aplikasi klien.
ApplyDispatchBehavior Gunakan metode untuk memodifikasi, memeriksa, atau menyisipkan ekstensi ke eksekusi di seluruh titik akhir dalam aplikasi layanan.
Validate Gunakan metode untuk mengonfirmasi bahwa memenuhi ServiceEndpoint persyaratan tertentu. Ini dapat digunakan untuk memastikan bahwa titik akhir memiliki pengaturan konfigurasi tertentu yang diaktifkan, mendukung fitur tertentu dan persyaratan lainnya.
IEndpointBehavior objek dapat menggunakan salah satu metode ini, tetapi seringkali hanya satu yang penting; dalam kasus seperti itu, metode yang tidak digunakan dapat kembali, tidak melakukan tindakan apa pun.
Nota
Semua metode meneruskan IEndpointBehaviorServiceEndpoint objek sebagai parameter. Parameter ini hanya untuk pemeriksaan; jika Anda mengubah ServiceEndpoint objek, perilaku eksekusi tidak ditentukan.
IEndpointBehaviorobjek biasanya digunakan untuk mengakses berbagai properti System.ServiceModel.Dispatcher.DispatchRuntimeobjek , , System.ServiceModel.Dispatcher.DispatchOperationSystem.ServiceModel.Dispatcher.EndpointDispatcher, dan System.ServiceModel.Dispatcher.ChannelDispatcher dalam aplikasi layanan dan System.ServiceModel.Dispatcher.ClientRuntime dan System.ServiceModel.Dispatcher.ClientOperation dalam aplikasi klien. Selain itu, Anda dapat mengakses properti klien dan layanan dupleks menggunakan ClientRuntime.CallbackDispatchRuntime properti dan DispatchRuntime.CallbackClientRuntime .
Untuk deskripsi berbagai properti dan kustomisasi yang tersedia, lihat Memperluas ServiceHost dan Lapisan Model Layanan.
Setelah penyesuaian diputuskan (dan antarmuka kustomisasi yang diterapkan jika perlu) dan IEndpointBehavior yang telah diputuskan adalah cakupan kustomisasi yang sesuai, penyesuaian harus dimasukkan ke dalam runtime Windows Communication Foundation (WCF) dengan menerapkan IEndpointBehavior dan menambahkan perilaku titik akhir ke runtime.
Ada dua cara untuk menambahkan perilaku ke runtime:
Tambahkan perilaku titik akhir kustom secara terprogram ke Behaviors properti sebelum pembukaan host layanan (dalam aplikasi layanan) atau pabrik saluran (dalam aplikasi klien).
Konfigurasikan perilaku menggunakan file konfigurasi aplikasi. Untuk detailnya, lihat <behaviorExtensions>.
Untuk melakukan tugas penyesuaian layanan yang dimaksudkannya, IEndpointBehavior objek harus ditambahkan ke ServiceEndpoint.Behaviors properti sebelum pembangunan runtime layanan, yang terjadi ketika ICommunicationObject.Open metode dipanggil pada System.ServiceModel.ServiceHost. Untuk melakukan tugas kustomisasi klien, IEndpointBehavior objek harus ditambahkan ke ServiceEndpoint.Behaviors properti sebelum memanggil ChannelFactory<TChannel>.CreateChannel metode atau ICommunicationObject.Open metode pada ChannelFactory<TChannel>.
Metode
| Nama | Deskripsi |
|---|---|
| AddBindingParameters(ServiceEndpoint, BindingParameterCollection) |
Terapkan untuk meneruskan data pada runtime ke pengikatan untuk mendukung perilaku kustom. |
| ApplyClientBehavior(ServiceEndpoint, ClientRuntime) |
Menerapkan modifikasi atau ekstensi klien di seluruh titik akhir. |
| ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) |
Menerapkan modifikasi atau ekstensi layanan di seluruh titik akhir. |
| Validate(ServiceEndpoint) |
Terapkan untuk mengonfirmasi bahwa titik akhir memenuhi beberapa kriteria yang dimaksudkan. |