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
- Hashtable.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- BamlBinaryReader.cs
- MessageQueuePermission.cs
- EndpointInfo.cs
- TypeReference.cs
- EarlyBoundInfo.cs
- WSSecurityTokenSerializer.cs
- DataGridViewLayoutData.cs
- SerializationSectionGroup.cs
- UInt64Converter.cs
- QueryUtil.cs
- ActivityInfo.cs
- DateTimeSerializationSection.cs
- ImageMapEventArgs.cs
- WebEvents.cs
- RowCache.cs
- CompilationRelaxations.cs
- GradientStopCollection.cs
- SecureStringHasher.cs
- HyperLinkColumn.cs
- TextDecorations.cs
- UpdateTracker.cs
- XmlDataProvider.cs
- IdentityModelDictionary.cs
- HttpResponse.cs
- CustomCategoryAttribute.cs
- StaticSiteMapProvider.cs
- SamlAuthorityBinding.cs
- OdbcConnectionString.cs
- DecoderBestFitFallback.cs
- Repeater.cs
- CssTextWriter.cs
- QueryServiceConfigHandle.cs
- UnsafeNativeMethods.cs
- InputBuffer.cs
- SeekStoryboard.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- RuntimeConfigurationRecord.cs
- ZipFileInfoCollection.cs
- KnownBoxes.cs
- ExtentKey.cs
- CalloutQueueItem.cs
- XmlNamespaceMapping.cs
- AutoScrollHelper.cs
- WebRequestModuleElement.cs
- RelationshipDetailsRow.cs
- IIS7WorkerRequest.cs
- RegexWorker.cs
- XmlDataContract.cs
- ByteStorage.cs
- InputProviderSite.cs
- DrawItemEvent.cs
- FormViewModeEventArgs.cs
- WorkflowInstanceQuery.cs
- RenderTargetBitmap.cs
- SimpleApplicationHost.cs
- PointLight.cs
- InternalConfigConfigurationFactory.cs
- WebConfigurationHost.cs
- webeventbuffer.cs
- IdentifierService.cs
- XmlSchemaSequence.cs
- Msmq4PoisonHandler.cs
- StreamGeometry.cs
- DateTimeFormat.cs
- Ports.cs
- BitmapMetadataEnumerator.cs
- SqlIdentifier.cs
- Delay.cs
- ToolStripItem.cs
- TextCompositionEventArgs.cs
- PageThemeCodeDomTreeGenerator.cs
- ListViewCommandEventArgs.cs
- XmlExpressionDumper.cs
- CodeEntryPointMethod.cs
- WebPartConnectionsConnectVerb.cs
- UrlAuthorizationModule.cs
- FormViewModeEventArgs.cs
- ImageButton.cs
- SecurityException.cs
- FormClosingEvent.cs
- CompModHelpers.cs
- ByteStreamMessageEncoderFactory.cs
- NullRuntimeConfig.cs
- AttachedPropertyBrowsableAttribute.cs
- InstanceCollisionException.cs
- RepeaterItemCollection.cs
- TreeNodeStyle.cs
- RefExpr.cs
- SmiEventSink.cs
- ListItemCollection.cs
- ToolStripEditorManager.cs
- ImageIndexConverter.cs
- DesignerDataParameter.cs
- ConfigXmlElement.cs
- CodeTypeReference.cs
- FloaterParagraph.cs
- MgmtResManager.cs
- ExpandSegmentCollection.cs