Хост отвечает также и за передачу параметров в рабочий процесс при его первом создании. Эти параметры хосту обычно посылает клиент, но именно хост посылает их в рабочий процесс. Для этого вы должны сначала настроить публичные свойства рабочего процесса. Любой передаваемый в рабочий процесс параметр, имеющий то же самое название, что и одно из этих публичных свойств, будет автоматически привязан к этому свойству. Вспомните, что мы уже делали это.
Параметры передаются в рабочий процесс как коллекция Dictionary (вида "ключ, значение"), содержащая элемент для каждого свойства, которое вы хотите настроить. Ключи имеют тип string и содержат названия свойств. Значения имеют тип object, поскольку параметр может иметь любой тип. Вы создаете коллекцию Dictionary следующим образом:
Dictionary<stringf object> myDictionary = new Dictionary<string, object>();
В нашем примере у нас есть три свойства, для которых нам нужны начальные значения: TravelRequestor, TravelCost и TravelRequestld. Вы уже видели ранее, как клиентское консольное приложение получало эту информацию от пользователя. Нам нужно спроецировать эти вводные данные на элементы коллекции следующим образом:
Dictionary<string, object> wfParams = new Dictionary<string, object>(); wfParams.Add("TravelRequestor", _userName) ; wfParams.Add("TravelCost", _travleCost); wfParams .Add ("TravelRequestld", _requestld) ;
И наконец, вы используете перегрузку метода CreateWorkflow в хосте для передачи параметров во время создания исполняющей средой экземпляра рабочего процесса.
Вот пример:
// Создать экземпляр рабочего процесса
Workflowinstance instance = workflowRuntime.CreateWorkflow( typeof(TravelRequestWf.TravelRequestProcess), wfParams);
Эти параметры будут теперь иметь установленное значение при запуске исполняющей среды.