Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / DefaultWorkflowLoaderService.cs / 1305376 / DefaultWorkflowLoaderService.cs
#region Imports using System; using System.Diagnostics; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Text; using System.IO; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Serialization; using System.Workflow.ComponentModel.Design; using System.Workflow.Runtime; #endregion namespace System.Workflow.Runtime.Hosting { public class DefaultWorkflowLoaderService : WorkflowLoaderService { protected internal override Activity CreateInstance(Type workflowType) { if (workflowType == null) throw new ArgumentNullException("workflowType"); if (!typeof(Activity).IsAssignableFrom(workflowType)) throw new ArgumentException(ExecutionStringManager.TypeMustImplementRootActivity); if (workflowType.GetConstructor(System.Type.EmptyTypes) == null) throw new ArgumentException(ExecutionStringManager.TypeMustHavePublicDefaultConstructor); return Activator.CreateInstance(workflowType) as Activity; } // This function will create a new root activity definition tree by deserializing the xoml and the rules file. protected internal override Activity CreateInstance(XmlReader workflowDefinitionReader, XmlReader rulesReader) { if (workflowDefinitionReader == null) throw new ArgumentNullException("workflowDefinitionReader"); Activity root = null; ValidationErrorCollection errors = new ValidationErrorCollection(); ServiceContainer serviceContainer = new ServiceContainer(); ITypeProvider typeProvider = this.Runtime.GetService(); if (typeProvider != null) serviceContainer.AddService(typeof(ITypeProvider), typeProvider); DesignerSerializationManager manager = new DesignerSerializationManager(serviceContainer); try { using (manager.CreateSession()) { WorkflowMarkupSerializationManager xomlSerializationManager = new WorkflowMarkupSerializationManager(manager); root = new WorkflowMarkupSerializer().Deserialize(xomlSerializationManager, workflowDefinitionReader) as Activity; if (root != null && rulesReader != null) { object rules = new WorkflowMarkupSerializer().Deserialize(xomlSerializationManager, rulesReader); root.SetValue(ConditionTypeConverter.DeclarativeConditionDynamicProp, rules); } foreach (object error in manager.Errors) { if (error is WorkflowMarkupSerializationException) errors.Add(new ValidationError(((WorkflowMarkupSerializationException)error).Message, ErrorNumbers.Error_SerializationError)); else errors.Add(new ValidationError(error.ToString(), ErrorNumbers.Error_SerializationError)); } } } catch (Exception e) { errors.Add(new ValidationError(e.Message, ErrorNumbers.Error_SerializationError)); } if (errors.HasErrors) throw new WorkflowValidationFailedException(ExecutionStringManager.WorkflowValidationFailure, errors); return root; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ImageInfo.cs
- StylusDevice.cs
- CodeFieldReferenceExpression.cs
- QilBinary.cs
- DSASignatureDeformatter.cs
- Bold.cs
- CurrencyWrapper.cs
- Crypto.cs
- WrappingXamlSchemaContext.cs
- MatrixTransform.cs
- RegexCompilationInfo.cs
- MergeLocalizationDirectives.cs
- RandomDelayQueuedSendsAsyncResult.cs
- DbProviderServices.cs
- OverlappedContext.cs
- SqlGatherConsumedAliases.cs
- OracleTransaction.cs
- ModelChangedEventArgsImpl.cs
- RealProxy.cs
- StagingAreaInputItem.cs
- DbModificationCommandTree.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ValidationPropertyAttribute.cs
- Vector.cs
- DictionaryKeyPropertyAttribute.cs
- XmlWriterSettings.cs
- GridViewUpdateEventArgs.cs
- DurableInstanceProvider.cs
- Selection.cs
- MonikerSyntaxException.cs
- ThumbButtonInfoCollection.cs
- CommandBinding.cs
- XPathScanner.cs
- AssemblyCache.cs
- CompilerInfo.cs
- DebugHandleTracker.cs
- odbcmetadatafactory.cs
- RC2.cs
- SchemaEntity.cs
- CompatibleComparer.cs
- OracleParameterCollection.cs
- Emitter.cs
- LineSegment.cs
- UIPermission.cs
- AccessedThroughPropertyAttribute.cs
- RequestNavigateEventArgs.cs
- ListViewDeletedEventArgs.cs
- MarkupCompiler.cs
- PolicyManager.cs
- GridViewUpdatedEventArgs.cs
- KoreanCalendar.cs
- DeploymentSectionCache.cs
- PathBox.cs
- IRCollection.cs
- VersionPair.cs
- DesignerActionListCollection.cs
- BaseDataBoundControl.cs
- TemplateDefinition.cs
- ProfileSettings.cs
- XmlAutoDetectWriter.cs
- OrderablePartitioner.cs
- LeaseManager.cs
- FixedSOMContainer.cs
- WebServiceHostFactory.cs
- UriWriter.cs
- InternalConfigRoot.cs
- DropTarget.cs
- Encoder.cs
- TextBoxBase.cs
- RenamedEventArgs.cs
- FileChangesMonitor.cs
- ResponseStream.cs
- BooleanToVisibilityConverter.cs
- EntityContainerEmitter.cs
- PublisherMembershipCondition.cs
- XmlFormatExtensionPointAttribute.cs
- WindowsListViewSubItem.cs
- GC.cs
- StdRegProviderWrapper.cs
- PageThemeBuildProvider.cs
- SqlTypeSystemProvider.cs
- Mapping.cs
- WebConfigurationHost.cs
- UInt16Storage.cs
- WebPartsPersonalization.cs
- InsufficientExecutionStackException.cs
- IProvider.cs
- SafeNativeHandle.cs
- ColorDialog.cs
- SolidColorBrush.cs
- DataGridViewTextBoxColumn.cs
- Drawing.cs
- DataBindingHandlerAttribute.cs
- smtpconnection.cs
- WorkerRequest.cs
- Control.cs
- EmbeddedMailObjectsCollection.cs
- BasicCellRelation.cs
- EnumerableCollectionView.cs
- SetStoryboardSpeedRatio.cs