OperationDescription 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
계약 작업에 대한 설명으로, 작업을 구성하는 메시지에 대한 설명을 제공합니다.
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 |
작업의 Begin 메서드를 가져오거나 설정합니다. |
Behaviors |
작업과 연결된 작업 동작을 가져오거나 설정합니다. |
DeclaringContract |
작업이 속하는 계약을 가져오거나 설정합니다. |
EndMethod |
작업의 End 메서드를 가져오거나 설정합니다. |
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 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |