Есть ли способ определить аргументы для рабочего процесса до его выполнения?Определение аргументов рабочего процесса во время выполнения до выполнения
Я разработал приложение, которое приспосабливает дизайнера, поэтому конечные пользователи могут создавать свои собственные рабочие процессы. При этом пользователь может добавлять свои собственные аргументы в рабочий процесс.
Я ищу способ проверить рабочий процесс до выполнения и попытаться разрешить аргументы. Я просмотрел класс WorkflowInspectionServices
, но я не могу спросить у него определенный тип элемента.
В идеале я хотел бы построить рабочий процесс из метаданных, хранящуюся в базе данных, используя что-то вроде:
var workflow = ActivityXamlServices.Load(new XamlReader(new StringReader(xamlText)));
var metadata = SomeUnknownMagicClass.Inspect(workflow);
var inputs = new Dictionary<string, object>()
forreach(var argument in metadata.Arguments)
{
inputs.Add(argument.Name, MagicArgumentResolver.Resolve(argument.Name));
}
WorflowInvoker.Invoke(workflow, inputs);
я мог бы что-то отсутствует, но, кажется, не WorkflowInspectionServices
сделать это. Он имеет метод CacheMetadata
, который звучит многообещающе, когда вы читаете документы MSDN, но в основном ничего не получается.
Спасибо за любую помощь.
Спасибо, Jota. Глупо, я на самом деле уже посмотрел на DynamicActivity в отношении вызова CacheMetadata, но полностью упустил коллекцию Properties. И да, я имел в виду разметку XAML, хранящуюся как текст в блобе. Еще раз спасибо. –