Share via


OperationDescription Sınıf

Tanım

İşlemi oluşturan iletilerin açıklamasını sağlayan sözleşme işleminin açıklamasını temsil eder.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
Devralma
OperationDescription

Örnekler

Aşağıdaki örnek, sınıfının özelliği tarafından Operations döndürülen koleksiyondan döndürülen öğesini ContractDescription kullanırOperationDescription. Kod, uç nokta koleksiyonunda yinelenir ve uç nokta adlarının yanı sıra uç noktadaki her işlemin adını yazdırır.

private void PrintDescription(ServiceHost sh)
{
    // Declare variables.
    int i, j, k, l, c;
    ServiceDescription servDesc = sh.Description;
    OperationDescription opDesc;
    ContractDescription contractDesc;
    MessageDescription methDesc;
    MessageBodyDescription mBodyDesc;
    MessagePartDescription partDesc;
    IServiceBehavior servBeh;
    ServiceEndpoint servEP;

    // Print the behaviors of the service.
    Console.WriteLine("Behaviors:");
    for (c = 0; c < servDesc.Behaviors.Count; c++)
    {
        servBeh = servDesc.Behaviors[c];
        Console.WriteLine("\t{0}", servBeh.ToString());
    }

    // Print the endpoint descriptions of the service.
    Console.WriteLine("Endpoints");
    for (i = 0; i < servDesc.Endpoints.Count; i++)
    {
        // Print the endpoint names.
        servEP = servDesc.Endpoints[i];
        Console.WriteLine("\tName: {0}", servEP.Name);
        contractDesc = servEP.Contract;

        Console.WriteLine("\tOperations:");
        for (j = 0; j < contractDesc.Operations.Count; j++)
        {
            // Print the operation names.
            opDesc = servEP.Contract.Operations[j];
            Console.WriteLine("\t\t{0}", opDesc.Name);
            Console.WriteLine("\t\tActions:");
            for (k  = 0; k < opDesc.Messages.Count; k++)
            {
                // Print the message action.
                methDesc = opDesc.Messages[k];
                Console.WriteLine("\t\t\tAction:{0}", methDesc.Action);

                // Check for the existence of a body, then the body description.
                mBodyDesc = methDesc.Body;
                if (mBodyDesc.Parts.Count > 0)
                {
                    for (l = 0; l < methDesc.Body.Parts.Count; l++)
                    {
                        partDesc = methDesc.Body.Parts[l];
                        Console.WriteLine("\t\t\t\t{0}",partDesc.Name);
                    }
                }
            }
        }
    }
}
Private Sub PrintDescription(ByVal sh As ServiceHost) 
    ' Declare variables.
    Dim i, j, k, l, c As Integer
    Dim servDesc As ServiceDescription = sh.Description
    Dim opDesc As OperationDescription
    Dim contractDesc As ContractDescription
    Dim methDesc As MessageDescription
    Dim mBodyDesc As MessageBodyDescription
    Dim partDesc As MessagePartDescription
    Dim servBeh As IServiceBehavior
    Dim servEP As ServiceEndpoint
    
    ' Print the behaviors of the service.
    Console.WriteLine("Behaviors:")
    For c = 0 To servDesc.Behaviors.Count-1
        servBeh = servDesc.Behaviors(c)
        Console.WriteLine(vbTab + "{0}", servBeh)
    Next c
    
    ' Print the endpoint descriptions of the service.
    Console.WriteLine("Endpoints")
    For i = 0 To servDesc.Endpoints.Count-1
        ' Print the endpoint names.
        servEP = servDesc.Endpoints(i)
        Console.WriteLine(vbTab + "Name: {0}", servEP.Name)
        contractDesc = servEP.Contract
        
        Console.WriteLine(vbTab + "Operations:")
        For j = 0 To contractDesc.Operations.Count-1
            ' Print operation names.
            opDesc = servEP.Contract.Operations(j)
            Console.WriteLine(vbTab + vbTab + "{0}", opDesc.Name)
            Console.WriteLine(vbTab + vbTab + "Actions:")
            For k = 0 To opDesc.Messages.Count-1
                ' Print the message action. 
                methDesc = opDesc.Messages(k)
                Console.WriteLine(vbTab + vbTab + vbTab + _
                  "Action:{0}", methDesc.Action)
                
                ' Check for the existence of a body, then the body description.
                mBodyDesc = methDesc.Body
                If mBodyDesc.Parts.Count > 0 Then
                    For l = 0 To methDesc.Body.Parts.Count-1
                        partDesc = methDesc.Body.Parts(l)
                        Console.WriteLine(vbTab + vbTab + _
                        vbTab + vbTab + "{0}", partDesc.Name)
                    Next l
                End If
            Next k
        Next j
    Next i

End Sub

Açıklamalar

Windows Communication Foundation (WCF) sözleşmesi, uç noktanın dış dünyayla ne iletişim kurduğunu belirten bir işlem koleksiyonudur. Her işlem bir ileti değişimidir. Örneğin, bir istek iletisi ve istek/yanıt iletisi değişimi oluşturan ilişkili bir yanıt iletisi.

Bir ContractDescription nesne, sözleşmeleri ve bunların işlemlerini açıklamak için kullanılır. içinde ContractDescription, her sözleşme işleminin tek yönlü mü yoksa istek/yanıt mı olduğu gibi işlemin özelliklerini açıklayan bir karşılık geleni OperationDescription vardır. Her OperationDescription biri, bir nesne koleksiyonu MessageDescription kullanarak işlemi oluşturan iletileri de açıklar. ContractDescription , programlama modelini kullanarak sözleşmeyi tanımlayan bir arabirime başvuru içerir. Bu arabirim ile ServiceContractAttributeişaretlenir ve uç nokta işlemlerine karşılık gelen yöntemleri ile OperationContractAttributeişaretlenir.

üzerindeki OperationDescription özelliklerin birçoğu üzerindeki WCF programlama modelinde OperationContractAttributekarşılık gelen özelliklere sahiptir, örneğin, IsTerminating.

Oluşturucular

OperationDescription(String, ContractDescription)

Belirtilen ad ve sözleşme açıklamasıyla sınıfın OperationDescription yeni bir örneğini başlatır.

Özellikler

BeginMethod

İşlemin begin yöntemini alır veya ayarlar.

Behaviors

İşlemle ilişkili işlem davranışlarını alır veya ayarlar.

DeclaringContract

İşlemin ait olduğu sözleşmeyi alır veya ayarlar.

EndMethod

İşlemin bitiş yöntemini alır veya ayarlar.

Faults

İşlem açıklamasıyla ilişkili hataların açıklamalarını alır.

HasProtectionLevel

İşlemin koruma düzeyi ayarlanmış olup olmadığını belirten bir değer alır.

IsInitiating

Yöntemin sunucuda oturum başlatabilecek bir işlem uygulayıp uygulamadığını belirten bir değer alır veya ayarlar (böyle bir oturum varsa).

IsOneWay

İşlemin yanıt iletisi döndürdüğünü belirten bir değer alır veya ayarlar.

IsTerminating

Hizmet işleminin yanıt iletisi gönderildikten sonra sunucunun oturumu kapatmasına neden olup olmadığını belirten bir değer alır veya ayarlar.

KnownTypes

İşlem açıklamasıyla ilişkili bilinen türleri alır.

Messages

İşlemi oluşturan iletilerin açıklamalarını alır veya ayarlar.

Name

İşlem açıklamasının adını alır veya ayarlar.

OperationBehaviors

İşlem için davranış kümesini alır.

ProtectionLevel

İşlem için koruma düzeyini alır veya ayarlar.

SyncMethod

İşlem açıklamasının hizmet eşitleme yöntemini alır veya ayarlar.

TaskMethod

Görev işlemi için kullanılan yöntemi alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

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

Varsayılan karma işlevi işlevi görür.

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

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

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

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

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

Özelliğin varsayılan değerinden ProtectionLevel değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini belirten bir değer döndürür.

ToString()

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

(Devralındığı yer: Object)

Şunlara uygulanır