📄 programloader.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 + -