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
- JumpTask.cs
- ContentIterators.cs
- CommandField.cs
- _AuthenticationState.cs
- GroupBoxRenderer.cs
- SchemaCollectionPreprocessor.cs
- ArithmeticLiteral.cs
- Guid.cs
- Missing.cs
- FormsAuthenticationConfiguration.cs
- Screen.cs
- CultureTable.cs
- SemanticAnalyzer.cs
- EventPrivateKey.cs
- FacetValueContainer.cs
- TransformDescriptor.cs
- BrowsableAttribute.cs
- ApplicationSecurityInfo.cs
- ValidationVisibilityAttribute.cs
- PlatformNotSupportedException.cs
- TextAutomationPeer.cs
- ArithmeticLiteral.cs
- SharedTcpTransportManager.cs
- PositiveTimeSpanValidator.cs
- SapiInterop.cs
- DataGridViewImageColumn.cs
- PasswordTextNavigator.cs
- ObjectAnimationBase.cs
- CodeAttributeArgument.cs
- BitmapPalettes.cs
- ThemeDirectoryCompiler.cs
- DBCommandBuilder.cs
- CommandSet.cs
- XmlWrappingReader.cs
- ITextView.cs
- RoutingTable.cs
- UnsafeNativeMethods.cs
- AuthenticationManager.cs
- FileCodeGroup.cs
- BoolExpressionVisitors.cs
- PopupEventArgs.cs
- StandardCommandToolStripMenuItem.cs
- WsdlHelpGeneratorElement.cs
- ColumnMapProcessor.cs
- PointLightBase.cs
- GridViewItemAutomationPeer.cs
- DataGridViewCellStateChangedEventArgs.cs
- PerformanceCounterLib.cs
- PassportAuthenticationEventArgs.cs
- ProjectionCamera.cs
- XsltContext.cs
- ResourceProviderFactory.cs
- BooleanKeyFrameCollection.cs
- HtmlControl.cs
- ServiceOperationParameter.cs
- Membership.cs
- SettingsPropertyValueCollection.cs
- PopupControlService.cs
- DocumentApplication.cs
- EntityViewGenerationAttribute.cs
- DataGridViewDataErrorEventArgs.cs
- Encoder.cs
- _SSPISessionCache.cs
- EventSinkHelperWriter.cs
- EmptyElement.cs
- QuaternionAnimation.cs
- ServerValidateEventArgs.cs
- WorkerRequest.cs
- TabPanel.cs
- Zone.cs
- ChannelSinkStacks.cs
- HeaderElement.cs
- PixelFormatConverter.cs
- EncryptedPackageFilter.cs
- UserControl.cs
- formatter.cs
- AutomationElementIdentifiers.cs
- XmlSchemaFacet.cs
- SettingsPropertyValue.cs
- HttpResponseWrapper.cs
- SectionInformation.cs
- UnsafeNativeMethods.cs
- ActiveXSite.cs
- RenderOptions.cs
- GorillaCodec.cs
- GrammarBuilderWildcard.cs
- MimeParameters.cs
- TemplateComponentConnector.cs
- PerspectiveCamera.cs
- ByteRangeDownloader.cs
- EncoderFallback.cs
- SslStream.cs
- FrameSecurityDescriptor.cs
- BaseConfigurationRecord.cs
- ConfigurationSectionGroupCollection.cs
- ColumnHeader.cs
- HtmlElementErrorEventArgs.cs
- TextSpan.cs
- GradientSpreadMethodValidation.cs
- ToolStripMenuItem.cs