Code:
/ 4.0 / 4.0 / 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. #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
- LayoutTable.cs
- DataSourceXmlSerializer.cs
- RuleCache.cs
- StatusBarItemAutomationPeer.cs
- OrderPreservingMergeHelper.cs
- SystemWebCachingSectionGroup.cs
- DateTimeConstantAttribute.cs
- JsonEnumDataContract.cs
- MouseGestureConverter.cs
- LinqDataSourceContextData.cs
- AssertHelper.cs
- ThreadPoolTaskScheduler.cs
- HwndMouseInputProvider.cs
- XmlDocumentSerializer.cs
- HttpResponse.cs
- TemplateBindingExpression.cs
- CodeEventReferenceExpression.cs
- SessionPageStateSection.cs
- InvokeDelegate.cs
- UpdatePanelTriggerCollection.cs
- DragEventArgs.cs
- ExpressionNormalizer.cs
- JapaneseCalendar.cs
- HtmlImageAdapter.cs
- NavigationPropertyAccessor.cs
- ItemsPanelTemplate.cs
- columnmapkeybuilder.cs
- Comparer.cs
- SwitchExpression.cs
- PackageRelationship.cs
- Random.cs
- WorkflowQueuingService.cs
- MSAAEventDispatcher.cs
- SendKeys.cs
- VolatileResourceManager.cs
- ResXBuildProvider.cs
- AnonymousIdentificationModule.cs
- TemplatedWizardStep.cs
- Label.cs
- relpropertyhelper.cs
- PeerContact.cs
- XmlSerializerFactory.cs
- AmbientLight.cs
- HtmlInputControl.cs
- CollectionContainer.cs
- ThousandthOfEmRealDoubles.cs
- _RequestCacheProtocol.cs
- TextServicesCompartment.cs
- XmlAutoDetectWriter.cs
- SettingsPropertyValue.cs
- ConfigPathUtility.cs
- TableItemProviderWrapper.cs
- CopyOnWriteList.cs
- ReflectionHelper.cs
- SmtpFailedRecipientException.cs
- WebPartDisplayModeCollection.cs
- ScalarConstant.cs
- InvalidateEvent.cs
- PeerEndPoint.cs
- FontFamilyValueSerializer.cs
- RoleManagerModule.cs
- NavigationPropertyEmitter.cs
- _ShellExpression.cs
- DbConvert.cs
- ParsedAttributeCollection.cs
- DataBindingExpressionBuilder.cs
- XmlIncludeAttribute.cs
- JsonCollectionDataContract.cs
- ZipArchive.cs
- SamlSubjectStatement.cs
- RegistryPermission.cs
- WebPartRestoreVerb.cs
- IsolationInterop.cs
- WindowInteractionStateTracker.cs
- ReferenceSchema.cs
- OLEDB_Util.cs
- HtmlTableCell.cs
- XmlDocumentFragment.cs
- HttpCookiesSection.cs
- PersonalizationStateInfo.cs
- Token.cs
- Vector.cs
- CompositeDataBoundControl.cs
- CachedTypeface.cs
- HitTestParameters.cs
- AttachedPropertyMethodSelector.cs
- UIElementCollection.cs
- ModelPropertyImpl.cs
- DetailsView.cs
- WebServiceResponseDesigner.cs
- NextPreviousPagerField.cs
- CustomErrorsSectionWrapper.cs
- RoutedEventArgs.cs
- MailMessageEventArgs.cs
- MailFileEditor.cs
- ParseNumbers.cs
- PreProcessInputEventArgs.cs
- SlipBehavior.cs
- CodePageUtils.cs
- MethodBuilderInstantiation.cs