【发布时间】:2010-06-25 13:13:57
【问题描述】:
这是概念验证项目 - 目标是创建一个应用程序,该应用程序接收一些系统范围的事件并根据一些业务规则调用特定的工作流。
工作流单独创建,xaml 源存储在数据库中。
以下是用于调用工作流的代码:
public void RaiseEvent(IEvent e, IEventData eventData)
{
var typeName = e.GetType().FullName;
// Query Db for all workflows for the event
var repo = new WorkflowRepository();
var workflows = repo.GetActiveWorkflowsByEvent(typeName);
foreach (var wf in workflows)
{
var condition =
ConditionEvaluator.PrepareCondition(wf.Condition.Expression, eventData);
var okToStart = ConditionEvaluator.Evaluate(condition);
if (okToStart)
{
// Next line is throwing an exeption
object o = XamlServices.Parse(wf.WorkflowDefinition.Expression);
DynamicActivity da = o as DynamicActivity;
WorkflowInvoker.Invoke(da,
new Dictionary<string, object>
{{ "EventData", eventData }});
}
}
我们创建了非常简单的工作流程,可以自行运行而不会出现问题。但是当使用 XamlService.Parse 加载 xaml 时,它会引发以下异常:
System.Xaml.XamlObjectWriterException was unhandled
Message='No matching constructor found on type 'System.Activities.Activity'.
You can use the Arguments or FactoryMethod directives to construct this type.'
Line number '1' and line position '30'.
知道有什么问题吗? 谢谢。
【问题讨论】:
标签: c# xaml visual-studio-2010 workflow-foundation-4