Есть ли способ определить аргументы рабочего процесса до его выполнения?
Я разработал приложение, которое переходит к дизайнеру, чтобы конечные пользователи могли разрабатывать свои собственные рабочие процессы. При этом пользователь может добавлять свои собственные аргументы в рабочий процесс.
Я ищу способ проверить рабочий процесс перед выполнением и попытаться разрешить аргументы. Я посмотрел на класс 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, но в основном ничего не получается.
Спасибо за любую помощь.