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
- TextLineBreak.cs
- EntityDesignerDataSourceView.cs
- WebPartTracker.cs
- TrueReadOnlyCollection.cs
- SortAction.cs
- InfoCardSchemas.cs
- BulletedList.cs
- SafePEFileHandle.cs
- SqlConnectionString.cs
- CommandEventArgs.cs
- WinFormsComponentEditor.cs
- MenuCommandsChangedEventArgs.cs
- FormViewDeleteEventArgs.cs
- FileSystemWatcher.cs
- XPathDocumentIterator.cs
- ConfigXmlWhitespace.cs
- XmlAttribute.cs
- ResXResourceSet.cs
- ZoneIdentityPermission.cs
- EmptyImpersonationContext.cs
- MulticastOption.cs
- ProvidersHelper.cs
- DropDownList.cs
- LambdaCompiler.Generated.cs
- WindowsGraphics2.cs
- Privilege.cs
- RelationHandler.cs
- WebServiceClientProxyGenerator.cs
- ReadOnlyNameValueCollection.cs
- HttpClientCertificate.cs
- InputScopeManager.cs
- ManipulationPivot.cs
- CriticalHandle.cs
- _KerberosClient.cs
- CreateUserWizardDesigner.cs
- IsolatedStorageSecurityState.cs
- SystemKeyConverter.cs
- HtmlTableRow.cs
- Html32TextWriter.cs
- WebSysDescriptionAttribute.cs
- SequenceDesigner.cs
- ConnectivityStatus.cs
- PropertyGeneratedEventArgs.cs
- RectConverter.cs
- DataGridViewDataErrorEventArgs.cs
- GridViewColumn.cs
- ToolBar.cs
- RegexStringValidatorAttribute.cs
- DrawingImage.cs
- ConnectionStringEditor.cs
- Grant.cs
- UnicodeEncoding.cs
- X509SecurityTokenProvider.cs
- ApplicationFileParser.cs
- StateMachine.cs
- RouteParser.cs
- ToolStripRendererSwitcher.cs
- RegexReplacement.cs
- PasswordBox.cs
- SerialStream.cs
- ObjectReferenceStack.cs
- ReverseComparer.cs
- CustomError.cs
- EnglishPluralizationService.cs
- SectionUpdates.cs
- processwaithandle.cs
- StrongNameKeyPair.cs
- SynchronizedReadOnlyCollection.cs
- OleCmdHelper.cs
- ContextMenu.cs
- ProcessProtocolHandler.cs
- PreservationFileWriter.cs
- DocumentViewer.cs
- BeginStoryboard.cs
- MsmqTransportSecurity.cs
- ConfigurationStrings.cs
- ReflectionUtil.cs
- Adorner.cs
- SymbolTable.cs
- Common.cs
- DataBoundControlAdapter.cs
- ConfigurationCollectionAttribute.cs
- WorkflowValidationFailedException.cs
- PeerDuplexChannelListener.cs
- ProviderUtil.cs
- InkCanvasAutomationPeer.cs
- ParserStreamGeometryContext.cs
- CodeDelegateInvokeExpression.cs
- Query.cs
- GridViewDeletedEventArgs.cs
- CodeSnippetExpression.cs
- XmlSchemaObject.cs
- GraphicsPath.cs
- ThousandthOfEmRealPoints.cs
- EmptyControlCollection.cs
- OleStrCAMarshaler.cs
- BinaryWriter.cs
- InternalException.cs
- FindSimilarActivitiesVerb.cs
- Stack.cs