⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 programloader.cs

📁 WF本质论一书的源码,要书籍的朋友同我联系.
💻 CS
字号:
using System;
using System.Workflow.Runtime.Hosting;
using System.Xml;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.Activities.Rules;
using System.ComponentModel.Design;
using System.Workflow.ComponentModel.Compiler;
using System.ComponentModel.Design.Serialization;
namespace EssentialWF.Services {

  public class StandardProgramLoaderService : WorkflowLoaderService {
    protected override Activity CreateInstance( Type workflowType) {
      return (Activity)Activator.CreateInstance(workflowType);
    }

    protected override Activity CreateInstance(
        XmlReader workflowDefinitionReader, XmlReader rulesReader) {

      Activity root = null;
      ITypeProvider typeProvider = this.Runtime.GetService<ITypeProvider>();
      ServiceContainer serviceContainer = new ServiceContainer();
      serviceContainer.AddService(typeof(ITypeProvider), typeProvider);

      DesignerSerializationManager manager = new DesignerSerializationManager(serviceContainer);
      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(RuleDefinitions.RuleDefinitionsProperty, rules);
        }
      }
      return root;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -