OperationDescription Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет описание операции контракта, предоставляющее описание сообщений, составляющих операцию.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Наследование
-
OperationDescription
Примеры
В следующем примере используется объект , OperationDescription возвращенный из коллекции, возвращаемой Operations свойством ContractDescription класса . В следующем примере кода выполняется итерация через коллекцию конечных точек; затем имя каждой из конечных точек и имена всех операций в конечной точке выводятся на печать.
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) — это коллекция операций, которые указывают, что конечная точка взаимодействует с внешним миром. Каждая операция является обменом сообщениями. Например, сообщение запроса и соответствующее ответное сообщений образуют обмен сообщениями запрос-ответ.
Объект ContractDescription используется для описания контрактов и связанных с ними операций. В ContractDescription каждая операция контракта имеет соответствующий объект OperationDescription, который описывает аспекты операции, например, является операция однонаправленной или предполагает работу в режиме запрос-ответ. Каждый объект OperationDescription также описывает сообщения, составляющие операцию, использующую коллекцию объектов MessageDescription. ContractDescriptionсодержит ссылку на интерфейс, который определяет контракт с использованием модели программирования. Этот интерфейс отмечен атрибутом ServiceContractAttribute и его методами, что соответствует тому, что операции конечной точки отмечены атрибутом OperationContractAttribute.
Многие свойства OperationDescription в имеют соответствующие свойства в модели программирования WCF для OperationContractAttribute, например IsTerminating.
Конструкторы
OperationDescription(String, ContractDescription) |
Инициализирует новый экземпляр класса OperationDescription с заданным именем и описанием контракта. |
Свойства
BeginMethod |
Возвращает или задает метод начала операции. |
Behaviors |
Возвращает или задает поведение операции, связанное с операцией. |
DeclaringContract |
Получает или задает контракт, к которому принадлежит операция. |
EndMethod |
Возвращает или задает метод завершения операции. |
Faults |
Возвращает описания ошибок, связанных с описанием операции. |
HasProtectionLevel |
Возвращает значение, указывающее, установлен ли для операции уровень защиты. |
IsInitiating |
Возвращает или задает значение, указывающее, реализует ли метод операцию, которая может инициировать сеанс на сервере (если такой сеанс существует). |
IsOneWay |
Возвращает или задает значение, указывающее, возвращает ли операция ответное сообщение. |
IsTerminating |
Возвращает или задает значение, указывающее, приводит ли операция службы к закрытию сеанса сервером после отправки ответного сообщения, если оно есть. |
KnownTypes |
Возвращает известные типы, связанные с описанием операции. |
Messages |
Возвращает или задает описания сообщений, составляющих операцию. |
Name |
Возвращает или задает имя описания операции. |
OperationBehaviors |
Получает набор поведений для операции. |
ProtectionLevel |
Возвращает или задает уровень защиты для операции. |
SyncMethod |
Возвращает или задает метод синхронизации службы описания операции. |
TaskMethod |
Получает или задает метод, используемый для операции задачи. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ShouldSerializeProtectionLevel() |
Возвращает значение, указывающее, изменилось ли значение свойства ProtectionLevel относительно значения по умолчанию и нужно ли его сериализовать. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |