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
- StandardOleMarshalObject.cs
- EditorPartChrome.cs
- XPathNavigatorReader.cs
- TextTreeText.cs
- PageThemeBuildProvider.cs
- TreeViewItem.cs
- FieldToken.cs
- ItemTypeToolStripMenuItem.cs
- WindowExtensionMethods.cs
- MediaPlayerState.cs
- ClientConfigPaths.cs
- FormViewDesigner.cs
- ServiceControllerDesigner.cs
- FrameworkTextComposition.cs
- SingleObjectCollection.cs
- linebase.cs
- XmlNotation.cs
- SemanticResultKey.cs
- ActivationArguments.cs
- UseAttributeSetsAction.cs
- DesignerEventService.cs
- HandlerBase.cs
- ProgressPage.cs
- PropertyMetadata.cs
- CompoundFileReference.cs
- MemberHolder.cs
- UserValidatedEventArgs.cs
- MetabaseSettingsIis7.cs
- ImportedPolicyConversionContext.cs
- Point.cs
- WindowsRegion.cs
- DataObject.cs
- HtmlInputImage.cs
- CompiledQueryCacheKey.cs
- IChannel.cs
- DataSourceHelper.cs
- Composition.cs
- DataRowView.cs
- BitmapEffectDrawingContextWalker.cs
- ExpressionBuilder.cs
- UIElement3DAutomationPeer.cs
- WebPartManagerInternals.cs
- ValidationErrorCollection.cs
- TextEffect.cs
- RegexWorker.cs
- CustomAttributeFormatException.cs
- SimplePropertyEntry.cs
- OleDbParameter.cs
- SoapParser.cs
- DataGridCellInfo.cs
- XmlSchemaAll.cs
- CodeTypeDelegate.cs
- RootBrowserWindowAutomationPeer.cs
- State.cs
- COM2IPerPropertyBrowsingHandler.cs
- ListViewUpdatedEventArgs.cs
- FlowDocumentPaginator.cs
- ToolStripItemDesigner.cs
- CollectionContainer.cs
- Canvas.cs
- TabControl.cs
- TextServicesCompartment.cs
- KnownColorTable.cs
- GB18030Encoding.cs
- IndentTextWriter.cs
- PreservationFileWriter.cs
- SamlAssertionKeyIdentifierClause.cs
- HttpResponseInternalWrapper.cs
- SwitchElementsCollection.cs
- EntityDataSourceWrapperCollection.cs
- DeferredSelectedIndexReference.cs
- ImportedPolicyConversionContext.cs
- BCLDebug.cs
- PropertyItemInternal.cs
- SqlConnectionFactory.cs
- QueryHandler.cs
- EntityCommandDefinition.cs
- ClipboardData.cs
- ECDiffieHellman.cs
- OdbcReferenceCollection.cs
- Group.cs
- FactoryGenerator.cs
- CqlErrorHelper.cs
- DataSourceSelectArguments.cs
- FieldNameLookup.cs
- MaxMessageSizeStream.cs
- HTTPNotFoundHandler.cs
- MimeFormImporter.cs
- CheckableControlBaseAdapter.cs
- DrawingAttributes.cs
- TypeConverter.cs
- CurrentTimeZone.cs
- UrlPath.cs
- SqlCacheDependencySection.cs
- SelectorAutomationPeer.cs
- IdentityHolder.cs
- WorkflowDesignerMessageFilter.cs
- TextAutomationPeer.cs
- Selection.cs
- HandlerMappingMemo.cs