Это подтверждение концепции проекта. Цель состоит в том, чтобы создать приложение, которое получает некоторые общесистемные события и на основе некоторых бизнес-правил запускает определенный рабочий процесс.
Рабочие процессы создаются отдельно, а источник 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 }});
}
}
Мы создали очень простой рабочий процесс, который работает без проблем самостоятельно.Но когда xaml загружается с использованием XamlService.Parse, он выдает следующее исключение:
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'.
Есть идеи, что не так?Спасибо.