Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / TerminateWorkflow.cs / 1305376 / TerminateWorkflow.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System; using System.Activities; using System.ComponentModel; using System.Collections.ObjectModel; public sealed class TerminateWorkflow : NativeActivity { public TerminateWorkflow() { } [DefaultValue(null)] public InArgumentReason { get; set; } [DefaultValue(null)] public InArgument Exception { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { Collection arguments = new Collection (); RuntimeArgument reasonArgument = new RuntimeArgument("Reason", typeof(string), ArgumentDirection.In, false); metadata.Bind(this.Reason, reasonArgument); RuntimeArgument exceptionArgument = new RuntimeArgument("Exception", typeof(Exception), ArgumentDirection.In, false); metadata.Bind(this.Exception, exceptionArgument); arguments.Add(reasonArgument); arguments.Add(exceptionArgument); metadata.SetArgumentsCollection(arguments); if((this.Reason == null || this.Reason.IsEmpty) && (this.Exception == null || this.Exception.IsEmpty)) { metadata.AddValidationError(SR.OneOfTwoPropertiesMustBeSet("Reason", "Exception", "TerminateWorkflow", this.DisplayName)); } } protected override void Execute(NativeActivityContext context) { // If Reason is provided, we'll create a WorkflowApplicationTerminatedException from // it, wrapping Exception if it is also provided. Otherwise just use Exception. // If neither is provided just throw a new WorkflowTerminatedException. string reason = Reason.Get(context); Exception exception = Exception.Get(context); if (!string.IsNullOrEmpty(reason)) { context.Terminate(new WorkflowTerminatedException(reason, exception)); } else if(exception != null) { context.Terminate(exception); } else { context.Terminate(new WorkflowTerminatedException()); } } } } // 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
- CodeArrayIndexerExpression.cs
- NavigationProperty.cs
- GradientSpreadMethodValidation.cs
- DesignerLabelAdapter.cs
- TextAutomationPeer.cs
- Property.cs
- DataGridViewRowCancelEventArgs.cs
- RijndaelCryptoServiceProvider.cs
- ObjectIDGenerator.cs
- StatusBarPanel.cs
- StaticFileHandler.cs
- EdmFunctionAttribute.cs
- ObjectCacheHost.cs
- ArgIterator.cs
- Version.cs
- CfgParser.cs
- HotSpotCollection.cs
- Query.cs
- EmptyStringExpandableObjectConverter.cs
- TextRangeSerialization.cs
- ParameterCollectionEditor.cs
- WorkItem.cs
- OdbcError.cs
- NameNode.cs
- InfocardChannelParameter.cs
- MissingMemberException.cs
- FieldAccessException.cs
- WebPartsPersonalization.cs
- SmtpNtlmAuthenticationModule.cs
- CallSite.cs
- BindingNavigator.cs
- WebPartZoneDesigner.cs
- DrawToolTipEventArgs.cs
- XmlWrappingReader.cs
- entityreference_tresulttype.cs
- GradientStop.cs
- x509utils.cs
- DbConvert.cs
- EncoderParameters.cs
- KeyedPriorityQueue.cs
- CompilationSection.cs
- MasterPageParser.cs
- MouseGestureValueSerializer.cs
- CriticalFinalizerObject.cs
- Math.cs
- ValidationException.cs
- ErrorItem.cs
- ScriptControlManager.cs
- ParserContext.cs
- UseLicense.cs
- TagPrefixCollection.cs
- GeneralTransformGroup.cs
- TypeInfo.cs
- RichTextBox.cs
- IsolatedStorageSecurityState.cs
- NumberFunctions.cs
- TextEditorSelection.cs
- AssemblyHash.cs
- GroupJoinQueryOperator.cs
- ListViewHitTestInfo.cs
- SqlStream.cs
- PointAnimationClockResource.cs
- ChtmlCommandAdapter.cs
- SqlCacheDependencyDatabase.cs
- FillBehavior.cs
- ResourceExpressionEditor.cs
- ServiceNameElement.cs
- IntellisenseTextBox.designer.cs
- SuppressMergeCheckAttribute.cs
- ListDictionary.cs
- PageHandlerFactory.cs
- ScriptingJsonSerializationSection.cs
- PixelFormat.cs
- StrokeDescriptor.cs
- VoiceSynthesis.cs
- NameValueFileSectionHandler.cs
- ChameleonKey.cs
- SmtpLoginAuthenticationModule.cs
- DecoderBestFitFallback.cs
- ControlIdConverter.cs
- PolicyReader.cs
- NavigationWindowAutomationPeer.cs
- ConnectionStringSettings.cs
- CodeTypeReferenceExpression.cs
- Tile.cs
- ComponentChangingEvent.cs
- Cursor.cs
- UserInitiatedNavigationPermission.cs
- DiagnosticTrace.cs
- DesignBindingValueUIHandler.cs
- CodeAttachEventStatement.cs
- FirstMatchCodeGroup.cs
- FixedStringLookup.cs
- AssemblyAttributes.cs
- PreloadedPackages.cs
- ClientUrlResolverWrapper.cs
- PackagePart.cs
- RequestStatusBarUpdateEventArgs.cs
- SystemColors.cs
- TrackBarRenderer.cs