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
- SponsorHelper.cs
- Assert.cs
- Font.cs
- DrawListViewColumnHeaderEventArgs.cs
- ColorContextHelper.cs
- AuthenticationSection.cs
- DataControlFieldCell.cs
- SegmentInfo.cs
- PathFigureCollection.cs
- TableRow.cs
- X509ChainElement.cs
- GatewayDefinition.cs
- Trace.cs
- Expression.cs
- GeneralTransformCollection.cs
- SoapElementAttribute.cs
- assertwrapper.cs
- PerformanceCounterPermission.cs
- BoundPropertyEntry.cs
- DataContractSerializerSection.cs
- SmiTypedGetterSetter.cs
- MsmqIntegrationReceiveParameters.cs
- SecurityTokenResolver.cs
- TraceHandler.cs
- XmlComplianceUtil.cs
- UnhandledExceptionEventArgs.cs
- PerformanceCounterCategory.cs
- ConfigurationSectionGroup.cs
- PackWebRequest.cs
- Pair.cs
- NetworkInterface.cs
- Enum.cs
- InlineUIContainer.cs
- ErrorFormatterPage.cs
- WinEventTracker.cs
- WebPartCatalogAddVerb.cs
- WebServiceEnumData.cs
- HttpRequestBase.cs
- QuaternionRotation3D.cs
- OleServicesContext.cs
- DialogBaseForm.cs
- QilChoice.cs
- PerfCounterSection.cs
- NonVisualControlAttribute.cs
- SByteStorage.cs
- LoadedOrUnloadedOperation.cs
- SchemaNamespaceManager.cs
- WinFormsSpinner.cs
- ResourceDisplayNameAttribute.cs
- ComPlusDiagnosticTraceSchemas.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- FileNotFoundException.cs
- validation.cs
- ConnectionProviderAttribute.cs
- SqlUserDefinedTypeAttribute.cs
- LinqDataSourceContextEventArgs.cs
- Bidi.cs
- Selector.cs
- SortDescriptionCollection.cs
- AttributedMetaModel.cs
- TabletDevice.cs
- ComboBoxAutomationPeer.cs
- ProtocolElement.cs
- Screen.cs
- PartitionedStreamMerger.cs
- Debug.cs
- LogPolicy.cs
- EdmProperty.cs
- DrawingGroup.cs
- SupportsEventValidationAttribute.cs
- PerformanceCounterManager.cs
- SystemParameters.cs
- FormatConvertedBitmap.cs
- MemoryResponseElement.cs
- BoolLiteral.cs
- OutputCacheProfile.cs
- RecommendedAsConfigurableAttribute.cs
- TiffBitmapDecoder.cs
- HttpProfileGroupBase.cs
- TextViewBase.cs
- XmlAnyElementAttributes.cs
- ListControl.cs
- CmsInterop.cs
- BindableTemplateBuilder.cs
- ServerValidateEventArgs.cs
- StringInfo.cs
- BooleanConverter.cs
- DBBindings.cs
- TdsParserStaticMethods.cs
- HuffModule.cs
- MobileTemplatedControlDesigner.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- WebPartsPersonalizationAuthorization.cs
- ConfigurationValues.cs
- XPathDocument.cs
- PassportAuthenticationEventArgs.cs
- ServiceEndpointElementCollection.cs
- UnitySerializationHolder.cs
- TextParagraphCache.cs
- WebMessageFormatHelper.cs