MessageHeaderAttribute Kelas
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.
Menentukan bahwa anggota data adalah header pesan SOAP.
public ref class MessageHeaderAttribute : System::ServiceModel::MessageContractMemberAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
public class MessageHeaderAttribute : System.ServiceModel.MessageContractMemberAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)>]
type MessageHeaderAttribute = class
inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
- Warisan
- Turunan
- Atribut
Contoh
Contoh kode berikut menunjukkan penggunaan MessageHeaderAttribute untuk membuat header SOAP untuk pesan respons dengan Nameproperti , dan NamespaceMustUnderstand diatur ke nilai yang sesuai untuk header ini. Contoh kode diikuti dengan contoh pesan saat dikirim.
[MessageContract]
public class HelloResponseMessage
{
private string localResponse = String.Empty;
private string extra = String.Empty;
[MessageBodyMember(
Name = "ResponseToGreeting",
Namespace = "http://www.examples.com")]
public string Response
{
get { return localResponse; }
set { localResponse = value; }
}
[MessageHeader(
Name = "OutOfBandData",
Namespace = "http://www.examples.com",
MustUnderstand=true
)]
public string ExtraValues
{
get { return extra; }
set { this.extra = value; }
}
/*
The following is the response message, edited for clarity.
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
<h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
</s:Header>
<s:Body>
<HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
<ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
</HelloResponseMessage>
</s:Body>
</s:Envelope>
*/
}
<MessageContract> _
Public Class HelloResponseMessage
Private localResponse As String = String.Empty
Private extra As String = String.Empty
<MessageBodyMember(Name := "ResponseToGreeting", Namespace := "http://www.examples.com")> _
Public Property Response() As String
Get
Return localResponse
End Get
Set(ByVal value As String)
localResponse = value
End Set
End Property
<MessageHeader(Name := "OutOfBandData", Namespace := "http://www.examples.com", MustUnderstand:=True)> _
Public Property ExtraValues() As String
Get
Return extra
End Get
Set(ByVal value As String)
Me.extra = value
End Set
End Property
'
' The following is the response message, edited for clarity.
'
' <s:Envelope>
' <s:Header>
' <a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
' <h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
' </s:Header>
' <s:Body>
' <HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
' <ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
' </s:Body>
' </s:Envelope>
'
End Class
Keterangan
Atribut ini MessageHeaderAttribute memungkinkan Anda memetakan bidang dan properti jenis yang ditandai dengan MessageContractAttribute atribut ke header pesan SOAP. Bidang atau properti dapat berjenis sederhana atau jenis komposit yang dapat diserialisasikan.
Untuk informasi tentang mengontrol serialisasi konten isi SOAP tanpa memodifikasi amplop SOAP default itu sendiri, lihat System.Runtime.Serialization.DataContractAttribute, Menentukan Transfer Data dalam Kontrak Layanan, dan Menggunakan Kontrak Data.
Untuk informasi selengkapnya tentang membuat kontrak pesan, lihat Menggunakan Kontrak Pesan.
Standar SOAP mendefinisikan atribut berikut yang dapat ada di header:
Actor
atauRole
(Actor
dalam SOAP 1.1,Role
di SOAP 1.2)MustUnderstand
Relay
Atribut Actor
atau Role
menentukan URI simpul yang dimaksudkan untuk header tertentu. Atribut MustUnderstand
menentukan apakah header memahami pemrosesan simpul. Atribut Relay
menentukan apakah header akan disampaikan ke node hilir. Windows Communication Foundation (WCF) tidak melakukan pemrosesan atribut ini pada pesan masuk, kecuali untuk MustUnderstand
atribut .
Namun, Anda dapat membaca dan menulis atribut ini, meskipun tidak dikirim secara default. Anda dapat mengatur nilai atribut dengan dua cara. Pertama, Anda dapat mengubah Actorproperti , MustUnderstand dan Relay pada MessageHeaderAttribute. (Tidak ada Role
properti - atur Actor properti dan Role
diteruskan jika SOAP 1.2 digunakan). Contohnya:
Cara kedua untuk mengontrol atribut ini adalah dengan membuat header yang diinginkan mengetik parameter MessageHeader<T> jenis kelas dan menggunakan jenis yang dihasilkan bersama dengan MessageHeaderAttribute. Kemudian gunakan properti secara MessageHeader<T> terprogram untuk mengatur atribut SOAP. Contohnya:
Jika mekanisme kontrol dinamis dan statis digunakan, pengaturan statis adalah default tetapi dapat ditimpa menggunakan mekanisme dinamis. Contohnya:
Membuat header berulang dengan kontrol atribut dinamis diperbolehkan. Contohnya:
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
Di sisi penerimaan, membaca atribut SOAP ini hanya dapat dilakukan jika kelas generik MessageHeader<T> digunakan. Periksa Actorproperti , Relay atau MustUnderstand header jenis MessageHeader<T> untuk menemukan pengaturan atribut pada pesan yang diterima.
Ketika pesan diterima dan kemudian dikirim kembali, pengaturan atribut SOAP hanya pulang pergi untuk header jenis MessageHeader<T> .
Konstruktor
MessageHeaderAttribute() |
Menginisialisasi instans baru kelas MessageHeaderAttribute. |
Properti
Actor |
Mendapatkan atau mengatur URI yang menunjukkan simpul tempat header ini ditargetkan. Memetakan ke atribut header peran saat SOAP 1.2 digunakan dan atribut header aktor saat SOAP 1.1 digunakan. |
HasProtectionLevel |
Saat ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah anggota memiliki tingkat perlindungan yang ditetapkan. (Diperoleh dari MessageContractMemberAttribute) |
MustUnderstand |
Menentukan apakah simpul yang bertindak dalam Actor peran harus memahami header ini. Ini dipetakan ke |
Name |
Menentukan nama elemen yang sesuai dengan anggota ini. (Diperoleh dari MessageContractMemberAttribute) |
Namespace |
Menentukan namespace elemen yang sesuai dengan anggota ini. (Diperoleh dari MessageContractMemberAttribute) |
ProtectionLevel |
Menentukan apakah anggota akan ditransmisikan apa adanya, ditandatangani, atau ditandatangani dan dienkripsi. (Diperoleh dari MessageContractMemberAttribute) |
Relay |
Menentukan apakah header ini akan disampaikan ke simpul hilir. Ini dipetakan ke |
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Metode
Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
IsDefaultAttribute() |
Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
Match(Object) |
Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |