Bagikan melalui


MessageHeaderAttribute Kelas

Definisi

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 atau Role (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 mustUnderstand atribut header SOAP.

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 relay atribut header SOAP.

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)

Berlaku untuk