OperationDescription Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет описание операции контракта, которая содержит описание сообщений, составляющих операцию.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Наследование
-
OperationDescription
Примеры
В следующем примере используется OperationDescription возвращаемый из коллекции, возвращаемой свойством OperationsContractDescription класса. Код выполняет итерацию по коллекции конечных точек и выводит каждое имя конечной точки, а также имя каждой операции в конечной точке.
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 в модели OperationContractAttributeпрограммирования WCF, например 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) |