Example #1
0
        /// <summary>
        /// Deserialize the markup file
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        private Activity DeserializeFromMarkup(String fileName)
        {
            Activity workflow = null;

            //construct a serialization manager.
            DesignerSerializationManager dsm
                = new DesignerSerializationManager();

            using (dsm.CreateSession())
            {
                using (XmlReader xmlReader
                           = XmlReader.Create(fileName))
                {
                    //deserialize the workflow from the XmlReader
                    WorkflowMarkupSerializer markupSerializer
                             = new WorkflowMarkupSerializer();
                    workflow = markupSerializer.Deserialize(
                        dsm, xmlReader) as Activity;

                    if (dsm.Errors.Count > 0)
                    {
                        WorkflowMarkupSerializationException error
                            = dsm.Errors[0]
                              as WorkflowMarkupSerializationException;
                        throw error;
                    }
                }

                //deserialize a .rules file is one exists
                String rulesFileName = GetRulesFileName(fileName);
                if (File.Exists(rulesFileName))
                {
                    //read the .rules file
                    using (XmlReader xmlReader
                               = XmlReader.Create(rulesFileName))
                    {
                        WorkflowMarkupSerializer markupSerializer
                            = new WorkflowMarkupSerializer();
                        //deserialize the rule definitions
                        RuleDefinitions ruleDefinitions
                            = markupSerializer.Deserialize(dsm, xmlReader)
                              as RuleDefinitions;
                        if (ruleDefinitions != null)
                        {
                            //add the rules definitions to the workflow
                            workflow.SetValue(
                                RuleDefinitions.RuleDefinitionsProperty,
                                ruleDefinitions);
                        }
                    }
                }
            }

            return(workflow);
        }
Example #2
0
 public WorkflowCompilerError(string fileName, WorkflowMarkupSerializationException exception)
 {
     if (exception == null)
     {
         throw new ArgumentNullException("exception");
     }
     this.FileName               = fileName;
     this.Line                   = exception.LineNumber - 1;
     this.Column                 = exception.LinePosition - 1;
     this.ErrorText              = exception.Message;
     this.ErrorNumber            = ErrorNumbers.Error_SerializationError.ToString(CultureInfo.InvariantCulture);
     this.incrementLineAndColumn = true;
 }