IOperationBehavior 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 operasi baik di layanan atau aplikasi klien.
public interface class IOperationBehavior
public interface IOperationBehavior
type IOperationBehavior = interface
Public Interface IOperationBehavior
- Turunan
Contoh
Contoh kode berikut menunjukkan implementasi System.ServiceModel.Dispatcher.IParameterInspector yang menulis ke konsol saat inspektur dipanggil pada operasi. Penyesuaian ini hanya dapat dilampirkan ke System.ServiceModel.Dispatcher.DispatchOperation atau System.ServiceModel.Dispatcher.ClientOperation dan oleh karena itu biasanya dimasukkan oleh perilaku operasi.
#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
Console.WriteLine(
"IParameterInspector.AfterCall called for {0} with return value {1}.",
operationName,
returnValue.ToString()
);
}
public object BeforeCall(string operationName, object[] inputs)
{
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName);
return null;
}
#Region "IParameterInspector Members"
Public Sub AfterCall(ByVal operationName As String, ByVal outputs() As Object, ByVal returnValue As Object, _
ByVal correlationState As Object) Implements IParameterInspector.AfterCall
Console.WriteLine("IParameterInspector.AfterCall called for {0} with return value {1}.", _
operationName, returnValue.ToString())
End Sub
Public Function BeforeCall(ByVal operationName As String, ByVal inputs() As Object) As Object Implements _
IParameterInspector.BeforeCall
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName)
Return Nothing
End Function
Contoh kode berikut menunjukkan bagaimana perilaku operasi melampirkan pemeriksa parameter ke runtime.
#region IOperationBehavior Members
public void AddBindingParameters(
OperationDescription operationDescription, BindingParameterCollection bindingParameters
)
{ return; }
public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
clientOperation.ParameterInspectors.Add(new Inspector());
}
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(new Inspector());
}
public void Validate(OperationDescription operationDescription){ return; }
#Region "IOperationBehavior Members"
Public Sub AddBindingParameters(ByVal operationDescription As OperationDescription, _
ByVal bindingParameters As BindingParameterCollection) Implements _
IOperationBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal operationDescription As OperationDescription, ByVal _
clientOperation As ClientOperation) Implements IOperationBehavior.ApplyClientBehavior
clientOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub ApplyDispatchBehavior(ByVal operationDescription As OperationDescription, ByVal dispatchOperation As _
DispatchOperation) Implements IOperationBehavior.ApplyDispatchBehavior
dispatchOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub Validate(ByVal operationDescription As OperationDescription) Implements IOperationBehavior.Validate
Return
End Sub
Keterangan
Terapkan IOperationBehavior antarmuka untuk memodifikasi, memeriksa, atau memperluas beberapa aspek eksekusi di seluruh operasi 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 dispatcher klien dalam aplikasi klien.
ApplyDispatchBehavior Gunakan metode untuk memodifikasi, memeriksa, atau menyisipkan ekstensi ke eksekusi di seluruh operasi dalam aplikasi layanan.
Validate Gunakan metode untuk mengonfirmasi bahwa memenuhi OperationDescription persyaratan tertentu. Ini dapat digunakan untuk memastikan bahwa operasi memiliki pengaturan konfigurasi tertentu yang diaktifkan, mendukung fitur tertentu dan persyaratan lainnya.
IOperationBehavior 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 IOperationBehaviorOperationDescription objek sebagai parameter. Parameter ini hanya untuk pemeriksaan; jika Anda mengubah OperationDescription objek, perilaku eksekusi tidak ditentukan.
IOperationBehavior objek biasanya digunakan untuk mengakses berbagai properti System.ServiceModel.Dispatcher.DispatchOperation objek dalam aplikasi layanan dan System.ServiceModel.Dispatcher.ClientOperation objek dalam aplikasi klien.
Biasanya, pengembang terlebih dahulu meninjau titik ekstensibilitas untuk menentukan opsi kustomisasi mana yang sesuai dengan skenario aplikasi dan kemudian menerapkan penyesuaian pada cakupan yang sesuai. Misalnya, System.ServiceModel.Description.IServiceBehavior objek dapat menyisipkan kustomisasi untuk semua pesan di seluruh layanan dan System.ServiceModel.Description.IContractBehavior objek dapat menyisipkan kustomisasi untuk semua pesan di seluruh kontrak tertentu, dan sebagainya. Untuk deskripsi berbagai properti dan kustomisasi yang tersedia, lihat Memperluas ServiceHost dan Lapisan Model Layanan.
Setelah penyesuaian diputuskan (dan antarmuka kustomisasi diterapkan jika perlu) dan IOperationBehavior merupakan cakupan kustomisasi yang sesuai, penyesuaian harus dimasukkan ke dalam runtime Windows Communication Foundation (WCF) dengan menerapkan IOperationBehavior dan menambahkan perilaku operasi ke runtime.
Ada dua cara untuk menambahkan ke IOperationBehavior runtime:
Tambahkan perilaku operasi kustom secara terprogram ke OperationDescription.Behaviors properti sebelum pembukaan host layanan (dalam aplikasi layanan) atau pabrik saluran (dalam aplikasi klien).
Tambahkan perilaku menggunakan atribut kustom.
Untuk melakukan tugas penyesuaian layanan yang dimaksudkannya, IOperationBehavior objek harus ditambahkan ke OperationDescription.Behaviors properti sebelum pembangunan runtime layanan, yang terjadi ketika ICommunicationObject.Open metode dipanggil pada System.ServiceModel.ServiceHost. Untuk melakukan tugas kustomisasi klien, IOperationBehavior objek harus ditambahkan ke OperationDescription.Behaviors properti sebelum memanggil ChannelFactory<TChannel>.CreateChannel metode atau ICommunicationObject.Open metode pada ChannelFactory<TChannel>.
Meskipun perilaku operasi dirancang untuk akses mudah ke runtime pada cakupan operasi individual, Anda dapat mengakses runtime pada cakupan yang lebih besar dengan mengakses objek runtime induk.
Metode
| Nama | Deskripsi |
|---|---|
| AddBindingParameters(OperationDescription, BindingParameterCollection) |
Terapkan untuk meneruskan data pada runtime ke pengikatan untuk mendukung perilaku kustom. |
| ApplyClientBehavior(OperationDescription, ClientOperation) |
Menerapkan modifikasi atau ekstensi klien di seluruh operasi. |
| ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Menerapkan modifikasi atau ekstensi layanan di seluruh operasi. |
| Validate(OperationDescription) |
Terapkan untuk mengonfirmasi bahwa operasi memenuhi beberapa kriteria yang dimaksudkan. |