Aracılığıyla paylaş


MessageHeaderAttribute Sınıf

Tanım

Veri üyesinin SOAP ileti üst bilgisi olduğunu belirtir.

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
Devralma
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki kod örneğinde , ve NameNamespaceMustUnderstand özellikleri bu üst bilgi için uygun değerlere ayarlanmış yanıt iletisi için soap üst bilgisi oluşturmak için kullanımı MessageHeaderAttribute gösterilmektedir. Kod örneğinin ardından gönderildiğinde iletinin bir örneği gösterilir.

 [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

Açıklamalar

özniteliği, MessageHeaderAttribute özniteliğiyle işaretlenmiş bir türün alanlarını ve özelliklerini SOAP ileti üst bilgileriyle MessageContractAttribute eşlemenize olanak tanır. Alan veya özellik basit bir türde veya serileştirilebilen bileşik bir türde olabilir.

Varsayılan SOAP zarfını değiştirmeden SOAP gövdesinin içeriğinin seri hale getirilmesini denetleme hakkında bilgi için bkz System.Runtime.Serialization.DataContractAttribute. , Hizmet Sözleşmelerinde Veri Aktarımı Belirtme ve Veri Sözleşmelerini Kullanma.

İleti sözleşmeleri oluşturma hakkında daha fazla bilgi için bkz. İleti Sözleşmelerini Kullanma.

SOAP standardı, bir üst bilgide mevcut olabilecek aşağıdaki öznitelikleri tanımlar:

  • Actor veya Role (Actor SOAP 1.1'de, Role SOAP 1.2'de)

  • MustUnderstand

  • Relay

Actor or Role özniteliği, belirli bir üst bilginin hedeflendiği düğümün URI'sini belirtir. MustUnderstand özniteliği, üst bilginin düğüm işlemeyi anlayıp anlayamayacağını belirtir. Relay özniteliği, üst bilginin aşağı akış düğümlerine aktarılıp aktarılmayacağını belirtir. Windows Communication Foundation (WCF), öznitelik dışında MustUnderstand gelen iletilerde bu özniteliklerin herhangi bir işlemini gerçekleştirmez.

Ancak, varsayılan olarak gönderilmeseler bile bu öznitelikleri okuyabilir ve yazabilirsiniz. Öznitelik değerlerini iki şekilde ayarlayabilirsiniz. İlk olarak, üzerindeki MessageHeaderAttributeve MustUnderstandRelay özelliklerini değiştirebilirsinizActor. (Özellik yok Role - özelliği ayarlayın Actor ve Role SOAP 1.2 kullanılıyorsa geçirilir). Örneğin:

Bu öznitelikleri denetlemenin ikinci yolu, istenen üst bilgi türünü sınıfın MessageHeader<T> tür parametresi yapmak ve sonuçta elde edilen türü ile birlikte kullanmaktır MessageHeaderAttribute. Ardından SOAP özniteliklerini ayarlamak için program aracılığıyla özelliklerini kullanın MessageHeader<T> . Örneğin:

Hem dinamik hem de statik denetim mekanizmaları kullanılıyorsa, statik ayarlar varsayılandır, ancak dinamik mekanizma kullanılarak geçersiz kılınabilir. Örneğin:

Dinamik öznitelik denetimiyle yinelenen üst bilgiler oluşturmaya izin verilir. Örneğin:

[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];

Alıcı tarafında, bu SOAP özniteliklerini okumak yalnızca genel MessageHeader<T> sınıf kullanılıyorsa yapılabilir. Alınan iletideki Actoröznitelik ayarlarını bulmak için türün MessageHeader<T> üst bilgisinin , Relay veya MustUnderstand özelliklerini inceleyin.

bir ileti alındığında ve sonra geri gönderildiğinde, SOAP öznitelik ayarları yalnızca türündeki MessageHeader<T> üst bilgiler için gidiş dönüş yapar.

Oluşturucular

Name Description
MessageHeaderAttribute()

MessageHeaderAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
Actor

Bu üst bilginin hedeflendiği düğümü gösteren bir URI alır veya ayarlar. SOAP 1.2 kullanıldığında rol üst bilgisi özniteliğine ve SOAP 1.1 kullanıldığında aktör üst bilgisi özniteliğine eşler.

HasProtectionLevel

Türetilmiş bir sınıfta geçersiz kılındığında, üyenin atanmış bir koruma düzeyi olup olmadığını gösteren bir değer alır.

(Devralındığı yer: MessageContractMemberAttribute)
MustUnderstand

Rolde davranan düğümün Actor bu üst bilgiyi anlayıp anlamayacağını belirtir. Bu, SOAP üst bilgi özniteliğine mustUnderstand eşlenir.

Name

Bu üyeye karşılık gelen öğenin adını belirtir.

(Devralındığı yer: MessageContractMemberAttribute)
Namespace

Bu üyeye karşılık gelen öğenin ad alanını belirtir.

(Devralındığı yer: MessageContractMemberAttribute)
ProtectionLevel

Üyenin as-isiletilip aktarılmayacağını veya imzalanıp şifrelenmeyeceğini belirtir.

(Devralındığı yer: MessageContractMemberAttribute)
Relay

Bu üst bilginin aşağı akış düğümlerine aktarılıp aktarılmayacağını belirtir. Bu, SOAP üst bilgi özniteliğine relay eşlenir.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır