다음을 통해 공유


TransactedReceiveScope 클래스

정의

수신한 메시지로 시작되는 트랜잭션 수명의 범위를 지정하는 활동입니다. 트랜잭션은 시작 메시지의 워크플로로 이동하거나 메시지를 수신했을 때 디스패처로 생성될 수 있습니다.

public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
    inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
상속
TransactedReceiveScope
특성

예제

다음 예제에서는 TransactedReceiveScope 활동에 Sequence 클래스를 사용하는 방법을 보여 줍니다.

return new Sequence
{
    Activities = 
    {
        new WriteLine { Text = "Service workflow begins." },

        new System.ServiceModel.Activities.TransactedReceiveScope
        {
            Variables = { requestMessage, replyMessage },
            Request = receive,
            Body = new Sequence
            {
                Activities =
                {
                    new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
                    
                    new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },

                    new PrintTransactionInfo(),

                    new Assign<string>
                    {
                        Value = new InArgument<string>("Server side: Sending reply."),
                        To = new OutArgument<string>(replyMessage)
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },

                    new SendReply
                    {
                        Request = receive,
                        Content = SendContent.Create(new InArgument<string>(replyMessage)),                                    
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
                },
            },
        },

        new WriteLine { Text = "Server workflow ends." },
    },
};

설명

TransactedReceiveScope 활동을 사용하면 이동되는 트랜잭션의 수명 주기를 제어할 수 있습니다.

경고

시작에 대 한 TransactedReceiveScope 활동 (을 TransactedReceiveScope 포함 하는 Receive 활동과 CanCreateInstance 로 설정 true), 런타임이 시작 실행 하기 전에 트랜잭션이 만들어집니다는 TransactedReceiveScope 활동입니다. 이 트랜잭션은 워크플로 활동 계층에서는 앰비언트가 아니지만 기본 지속성 계층에서는 앰비언트입니다. Persist 활동 전 워크플로 실행 시 TransactedReceiveScope 활동이 발견되면 런타임은 앰비언트 트랜잭션에서 유지를 시도합니다. 이 동작은 트랜잭션이 완료될 때까지 차단됩니다. 워크플로 실행이 Body 섹션에 도달하지 못하면 트랜잭션을 끝낼 수 없습니다. 이러한 교착 상태는 트랜잭션 제한 시간을 초과할 때까지 워크플로에서 응답을 중단하도록 합니다. 트랜잭션 제한 시간을 초과하면 새로 생성된 인스턴스가 중단됩니다.

중요

TransactedReceiveScope를 사용할 때마다 TransactedReceiveScope 활동 내에 워크플로의 모든 Receive를 두는 것이 좋습니다.

중요

TransactedReceiveScope를 사용할 때 메시지가 잘못된 순서로 도착하는 경우 워크플로가 순서가 잘못된 첫 번째 메시지를 전달하려고 할 때 중단됩니다. 워크플로가 유휴 상태일 때 항상 일관된 중지 지점에 있는지 확인해야 합니다. 이렇게 하면 워크플로가 중단된 경우 이전 유지 지점에서 워크플로를 다시 시작할 수 있습니다.

생성자

TransactedReceiveScope()

TransactedReceiveScope 클래스의 새 인스턴스를 초기화합니다.

속성

Body

Activity 활동의 본문을 구성하는 TransactedReceiveScope를 가져오거나 설정합니다.

CacheId

워크플로 정의 범위 내에서 고유한 캐시의 식별자를 가져옵니다.

(다음에서 상속됨 Activity)
CanInduceIdle

활동을 통해 워크플로가 유휴 상태가 될 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 NativeActivity)
Constraints

Constraint에 대한 유효성 검사를 제공하도록 구성될 수 있는 Activity 작업의 컬렉션을 가져옵니다.

(다음에서 상속됨 Activity)
DisplayName

디버깅, 유효성 검사, 예외 처리 및 추적에 사용되는 선택적 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Activity)
Id

워크플로 정의 범위에서 고유한 식별자를 가져옵니다.

(다음에서 상속됨 Activity)
Implementation

작업의 실행 논리입니다.

(다음에서 상속됨 NativeActivity)
ImplementationVersion

작업의 구현 버전을 가져오거나 설정합니다.

(다음에서 상속됨 NativeActivity)
Request

Receive 활동과 연결된 TransactedReceiveScope 활동을 가져오거나 설정합니다.

Variables

Variable와 연결된 TransactedReceiveScope 컬렉션을 가져옵니다.

메서드

Abort(NativeActivityAbortContext)

파생 클래스에서 구현된 경우 중단 중인 활동에 대한 응답으로 동작을 수행합니다.

(다음에서 상속됨 NativeActivity)
CacheMetadata(ActivityMetadata)

구현되지 않았습니다. 대신 CacheMetadata(NativeActivityMetadata) 메서드를 사용합니다.

(다음에서 상속됨 NativeActivity)
CacheMetadata(NativeActivityMetadata)

활동의 인수, 변수, 자식 활동 및 활동 대리자에 대한 설명을 만들고 유효성을 검사합니다.

(다음에서 상속됨 NativeActivity)
Cancel(NativeActivityContext)

파생 클래스에서 구현된 경우 활동을 점진적으로 조기에 완료하도록 논리를 실행합니다.

(다음에서 상속됨 NativeActivity)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Execute(NativeActivityContext)

파생 클래스에서 구현된 경우 활동의 실행 논리를 실행합니다.

(다음에서 상속됨 NativeActivity)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

동적 업데이트 맵을 만들 때 이벤트를 발생시킵니다.

(다음에서 상속됨 NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

동적 업데이트 맵을 만들 때 이벤트를 발생시킵니다.

(다음에서 상속됨 NativeActivity)
ShouldSerializeDisplayName()

DisplayName 속성을 serialize해야 하는지 여부를 나타냅니다.

(다음에서 상속됨 Activity)
ToString()

StringIdDisplayName을 포함하는 Activity을 반환합니다.

(다음에서 상속됨 Activity)
UpdateInstance(NativeActivityUpdateContext)

NativeActivity의 인스턴스를 업데이트합니다.

(다음에서 상속됨 NativeActivity)

적용 대상