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
- Msec.cs
- RandomNumberGenerator.cs
- Evaluator.cs
- Msec.cs
- SqlConnectionPoolProviderInfo.cs
- TrackingMemoryStreamFactory.cs
- MultiByteCodec.cs
- Viewport3DAutomationPeer.cs
- DoubleLink.cs
- WebBrowserContainer.cs
- Documentation.cs
- Vars.cs
- JavaScriptString.cs
- DocumentPageView.cs
- UrlMappingCollection.cs
- OdbcReferenceCollection.cs
- ToolStripRenderer.cs
- CodeNamespaceImport.cs
- ProxyManager.cs
- StrokeSerializer.cs
- ArgumentNullException.cs
- AesCryptoServiceProvider.cs
- TextEncodedRawTextWriter.cs
- HashCryptoHandle.cs
- DoubleConverter.cs
- ObjectConverter.cs
- EmbeddedMailObject.cs
- SmiSettersStream.cs
- XmlSchemaType.cs
- ArrayMergeHelper.cs
- Helpers.cs
- TextCollapsingProperties.cs
- StorageEntityTypeMapping.cs
- FactoryMaker.cs
- IPHostEntry.cs
- Helpers.cs
- CodeVariableReferenceExpression.cs
- XmlWellformedWriterHelpers.cs
- SQLBinary.cs
- DisplayNameAttribute.cs
- TextTrailingCharacterEllipsis.cs
- Tuple.cs
- VectorCollectionValueSerializer.cs
- NotEqual.cs
- LocalIdKeyIdentifierClause.cs
- DbParameterCollection.cs
- PhysicalFontFamily.cs
- HashCodeCombiner.cs
- FontSourceCollection.cs
- LinqExpressionNormalizer.cs
- SBCSCodePageEncoding.cs
- FileDialogPermission.cs
- DataGridViewCellConverter.cs
- CopyCodeAction.cs
- MultiSelector.cs
- DataSourceHelper.cs
- XmlElement.cs
- DataGridViewTopRowAccessibleObject.cs
- VoiceInfo.cs
- SettingsPropertyIsReadOnlyException.cs
- HandlerMappingMemo.cs
- IChannel.cs
- List.cs
- TabItemWrapperAutomationPeer.cs
- GrowingArray.cs
- RegexReplacement.cs
- CompoundFileDeflateTransform.cs
- XmlIlTypeHelper.cs
- DoWorkEventArgs.cs
- DrawListViewColumnHeaderEventArgs.cs
- SwitchAttribute.cs
- TextEditorSelection.cs
- BufferBuilder.cs
- WebAdminConfigurationHelper.cs
- ProcessManager.cs
- Char.cs
- MulticastIPAddressInformationCollection.cs
- ReferencedAssemblyResolver.cs
- CompositeClientFormatter.cs
- XmlAttributeCollection.cs
- ViewGenResults.cs
- OracleDataReader.cs
- NeutralResourcesLanguageAttribute.cs
- TypeBrowser.xaml.cs
- XmlAnyAttributeAttribute.cs
- PackageStore.cs
- ConsoleCancelEventArgs.cs
- ParserExtension.cs
- IItemProperties.cs
- BlockUIContainer.cs
- OrderByBuilder.cs
- Clock.cs
- AutomationElementIdentifiers.cs
- UserControlBuildProvider.cs
- DoubleLinkListEnumerator.cs
- WebPartDesigner.cs
- CallbackBehaviorAttribute.cs
- OutputCacheSettingsSection.cs
- _LocalDataStoreMgr.cs
- EncoderFallback.cs