OperationDescription OperationDescription OperationDescription OperationDescription Class

Определение

Представляет описание операции контракта, предоставляющее описание сообщений, составляющих операцию.Represents the description of a contract operation that provides a description of the messages that make up the operation.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
Наследование
OperationDescriptionOperationDescriptionOperationDescriptionOperationDescription

Примеры

В следующем примере используется возвращенный из коллекции, OperationDescription возвращенной Operations свойством ContractDescription класса.The following example uses the OperationDescription returned from the collection returned by the Operations property of the ContractDescription class. В следующем примере кода выполняется итерация через коллекцию конечных точек; затем имя каждой из конечных точек и имена всех операций в конечной точке выводятся на печать.The code iterates through the collection of endpoints and prints each endpoint name, as well as the name of each operation in the endpoint.

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     

Комментарии

Контракт Windows Communication Foundation (WCF) — это коллекция операций, которая указывает, что конечная точка взаимодействует с внешним миром.A Windows Communication Foundation (WCF) contract is a collection of operations that specifies what the endpoint communicates to the outside world. Каждая операция является обменом сообщениями.Each operation is a message exchange. Например, сообщение запроса и соответствующее ответное сообщений образуют обмен сообщениями запрос-ответ.For example, a request message and an associated reply message forming a request/reply message exchange.

Объект ContractDescription используется для описания контрактов и связанных с ними операций.A ContractDescription object is used to describe contracts and their operations. В ContractDescription каждая операция контракта имеет соответствующий объект OperationDescription, который описывает аспекты операции, например, является операция однонаправленной или предполагает работу в режиме запрос-ответ.Within a ContractDescription, each contract operation has a corresponding OperationDescription that describes aspects of the operation, such as whether the operation is one-way or request/reply. Каждый объект OperationDescription также описывает сообщения, составляющие операцию, использующую коллекцию объектов MessageDescription.Each OperationDescription also describes the messages that make up the operation using a collection of MessageDescription objects. ContractDescriptionсодержит ссылку на интерфейс, который определяет контракт с использованием модели программирования.ContractDescription contains a reference to an interface that defines the contract using the programming model. Этот интерфейс отмечен атрибутом ServiceContractAttribute и его методами, что соответствует тому, что операции конечной точки отмечены атрибутом OperationContractAttribute.This interface is marked with ServiceContractAttribute, and its methods that correspond to endpoint operations are marked with OperationContractAttribute.

Многие свойства OperationDescription имеют соответствующие свойства в OperationContractAttributeмодели программирования WCF, IsTerminatingнапример.Many of the properties on OperationDescription have corresponding properties in the WCF programming model on OperationContractAttribute, for example, IsTerminating.

Конструкторы

OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription)

Инициализирует новый экземпляр класса OperationDescription с заданным именем и описанием контракта.Initializes a new instance of the OperationDescription class with a specified name and contract description.

Свойства

BeginMethod BeginMethod BeginMethod BeginMethod

Возвращает или задает метод начала операции.Gets or sets the begin method of the operation.

Behaviors Behaviors Behaviors Behaviors

Возвращает или задает поведение операции, связанное с операцией.Gets or sets the operation behaviors associated with the operation.

DeclaringContract DeclaringContract DeclaringContract DeclaringContract

Получает или задает контракт, к которому принадлежит операция.Gets or sets the contract to which the operation belongs.

EndMethod EndMethod EndMethod EndMethod

Возвращает или задает метод завершения операции.Gets or sets the end method of the operation.

Faults Faults Faults Faults

Возвращает описания ошибок, связанных с описанием операции.Gets the descriptions of the faults associated with the operation description.

HasProtectionLevel HasProtectionLevel HasProtectionLevel HasProtectionLevel

Возвращает значение, указывающее, установлен ли для операции уровень защиты.Gets a value that indicates whether the operation has had a protection level set.

IsInitiating IsInitiating IsInitiating IsInitiating

Возвращает или задает значение, указывающее, реализует ли метод операцию, которая может инициировать сеанс на сервере (если такой сеанс существует).Gets or sets a value that indicates whether the method implements an operation that can initiate a session on the server (if such a session exists).

IsOneWay IsOneWay IsOneWay IsOneWay

Возвращает или задает значение, указывающее, возвращает ли операция ответное сообщение.Gets or sets a value that indicates whether an operation returns a reply message.

IsTerminating IsTerminating IsTerminating IsTerminating

Возвращает или задает значение, указывающее, приводит ли операция службы к закрытию сеанса сервером после отправки ответного сообщения, если оно есть.Gets or sets a value that indicates whether the service operation causes the server to close the session after the reply message, if any, is sent.

KnownTypes KnownTypes KnownTypes KnownTypes

Возвращает известные типы, связанные с описанием операции.Gets the known types associated with the operation description.

Messages Messages Messages Messages

Возвращает или задает описания сообщений, составляющих операцию.Gets or sets the descriptions of the messages that make up the operation.

Name Name Name Name

Возвращает или задает имя описания операции.Gets or sets the name of the operation description.

OperationBehaviors OperationBehaviors OperationBehaviors OperationBehaviors

Получает набор поведений для операции.Gets the set of behaviors for the operation.

ProtectionLevel ProtectionLevel ProtectionLevel ProtectionLevel

Возвращает или задает уровень защиты для операции.Gets or sets the protection level for the operation.

SyncMethod SyncMethod SyncMethod SyncMethod

Возвращает или задает метод синхронизации службы описания операции.Gets or sets the service synchronization method of the operation description.

TaskMethod TaskMethod TaskMethod TaskMethod

Получает или задает метод, используемый для операции задачи.Gets or sets the method used for the task operation.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel()

Возвращает значение, указывающее, изменилось ли значение свойства ProtectionLevel относительно значения по умолчанию и нужно ли его сериализовать.Returns a value that indicates whether the ProtectionLevel property has changed from its default value and should be serialized.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к