Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / DefaultCompensation.cs / 1305376 / DefaultCompensation.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Statements { using System; using System.Collections.Generic; using System.Runtime; using System.Collections.ObjectModel; sealed class DefaultCompensation : NativeActivity { Activity body; VariabletoCompensateToken; CompletionCallback onChildCompensated; public DefaultCompensation() : base() { this.toCompensateToken = new Variable (); this.body = new InternalCompensate() { Target = new InArgument (toCompensateToken), }; } public InArgument Target { get; set; } Activity Body { get { return this.body; } } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument targetArgument = new RuntimeArgument("Target", typeof(CompensationToken), ArgumentDirection.In); metadata.Bind(this.Target, targetArgument); metadata.SetArgumentsCollection(new Collection { targetArgument }); metadata.SetImplementationVariablesCollection(new Collection { this.toCompensateToken }); Fx.Assert(this.Body != null, "Body must be valid"); metadata.SetImplementationChildrenCollection(new Collection { this.Body }); } protected override void Execute(NativeActivityContext context) { InternalExecute(context, null); } void InternalExecute(NativeActivityContext context, ActivityInstance completedInstance) { CompensationExtension compensationExtension = context.GetExtension (); if (compensationExtension == null) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.CompensateWithoutCompensableActivity(this.DisplayName))); } CompensationToken token = Target.Get(context); CompensationTokenData tokenData = token == null ? null : compensationExtension.Get(token.CompensationId); Fx.Assert(tokenData != null, "CompensationTokenData must be valid"); if (tokenData.ExecutionTracker.Count > 0) { if (this.onChildCompensated == null) { this.onChildCompensated = new CompletionCallback(InternalExecute); } this.toCompensateToken.Set(context, new CompensationToken(tokenData.ExecutionTracker.Get())); Fx.Assert(Body != null, "Body must be valid"); context.ScheduleActivity(Body, this.onChildCompensated); } } protected override void Cancel(NativeActivityContext context) { // Suppress Cancel } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ApplicationException.cs
- WebPartCollection.cs
- AssemblyNameProxy.cs
- ItemCheckEvent.cs
- OleDbWrapper.cs
- ReplyAdapterChannelListener.cs
- SqlDataSourceRefreshSchemaForm.cs
- AnnotationResourceCollection.cs
- SimpleWorkerRequest.cs
- HyperLinkStyle.cs
- HtmlTernaryTree.cs
- RequestQueryProcessor.cs
- SmtpFailedRecipientException.cs
- TextTreeTextElementNode.cs
- RelationshipSet.cs
- TypeElementCollection.cs
- PropertySet.cs
- ExpressionBinding.cs
- WrappedReader.cs
- TypeUnloadedException.cs
- MenuAdapter.cs
- ContractUtils.cs
- OleServicesContext.cs
- UnauthorizedWebPart.cs
- TypeBuilder.cs
- Registry.cs
- DefaultPropertyAttribute.cs
- RijndaelManaged.cs
- ScrollItemPattern.cs
- AsyncCompletedEventArgs.cs
- RowSpanVector.cs
- AutoCompleteStringCollection.cs
- SafePEFileHandle.cs
- TemplateParser.cs
- OdbcConnectionString.cs
- Model3D.cs
- CheckableControlBaseAdapter.cs
- SqlFacetAttribute.cs
- DockProviderWrapper.cs
- Zone.cs
- InternalMappingException.cs
- Pair.cs
- BitmapPalette.cs
- Process.cs
- BasicCellRelation.cs
- UserPreferenceChangedEventArgs.cs
- KeyManager.cs
- ExpandoObject.cs
- SqlUserDefinedTypeAttribute.cs
- PerformanceCountersElement.cs
- path.cs
- ColorDialog.cs
- RequiredFieldValidator.cs
- UserPersonalizationStateInfo.cs
- TypeTypeConverter.cs
- MatchAttribute.cs
- HttpStaticObjectsCollectionWrapper.cs
- SerTrace.cs
- EntityDataSourceColumn.cs
- Assembly.cs
- SecurityElement.cs
- HMACSHA1.cs
- PersonalizationProviderCollection.cs
- RewritingProcessor.cs
- BuildProvider.cs
- MulticastOption.cs
- XmlBaseReader.cs
- ZipPackagePart.cs
- NoResizeSelectionBorderGlyph.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- AlphabeticalEnumConverter.cs
- QuaternionAnimationBase.cs
- ReadWriteObjectLock.cs
- CommentEmitter.cs
- StrokeNodeOperations2.cs
- ColorInterpolationModeValidation.cs
- PowerStatus.cs
- XDeferredAxisSource.cs
- ByteKeyFrameCollection.cs
- RoutedEventArgs.cs
- BadImageFormatException.cs
- HiddenField.cs
- DiscoveryExceptionDictionary.cs
- PageCache.cs
- ImageConverter.cs
- X509Certificate2Collection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ExpressionTextBox.xaml.cs
- TreeNode.cs
- BitmapSizeOptions.cs
- AllMembershipCondition.cs
- AdornerDecorator.cs
- BitHelper.cs
- TypeUtils.cs
- Transactions.cs
- AnimationClock.cs
- XdrBuilder.cs
- AllMembershipCondition.cs
- ListView.cs
- KnownTypesHelper.cs