Я работаю над проектом по основанию рабочего процесса, и у меня возникла проблема. Объясняю свой проект:
У меня есть MainWindow, где я задаю имя рабочего процесса, который хочу запустить. Когда я запускаю этот рабочий процесс, я вызываю класс VisualTracking.cs, чтобы узнать, где находится отладка. Этот конструктор класса cs имеет следующий метод (WorkflowDesigner wd, string filePath, string name). Имя - это имя рабочего процесса, которое я установил в mainwindow.
У меня есть проект dll с некоторыми настраиваемыми действиями, которые я использую в предыдущем перенесенном рабочем процессе. В одном из этих действий у меня есть аргумент InArgument, который вызывает textValue. Я хотел бы, чтобы этот InArgument получил значение имени рабочего процесса, поэтому для этого я выполняю следующий код:
MainWindow:
......
VisualTracking tracker = new VisualTracking(wd, workflowFilePathName, this.workflowName);
.....
VisualTracking класс:
.......
private string workflowName { get; set; }
.......
public VisualTracking(WorkflowDesigner wd,string filePath,string name) {
.......
foreach (Activity v in idActivityMap.Values)
{
string val = v.GetType().FullName;
activityLists.Add(val);
if (v.GetType().FullName == "RulesDll.Status_Activity.StatusActivity")
{
((StatusActivity)v).textValue = this.workflowName;
}
}
........
В этом foreach для каждого действия рабочего процесса я проверяю, является ли его пространство имен целевым действием, которому я хочу установить имя рабочего процесса.
Статус
........
public InArgument<string> textValue;
public InArgument<string> Text
{
get { return this.textValue; }
set { this.textValue = value; }
}
........
protected override void Execute(CodeActivityContext context)
{
...........
string text = context.GetValue(this.Text);
...........
Поэтому я хотел бы, чтобы в строковом тексте было значение workflowName, которое я связал в классе visualtracking .... Но когда я отлаживаю, всегда получаю значение как null ....
Любое решение будет оценено по достоинству !!!!!