Получить вход от пользователя с ActivityBuilder в WF 4 - PullRequest
1 голос
/ 13 апреля 2010

Я пытаюсь написать простое действие, которое получило от пользователя его имя и распечатать сообщение "привет + имя пользователя".

проблема в том, что я не могу получить доступ к вводу имени пользователя через код.

функция:

static ActivityBuilder CreateTask1()
    {
        Dictionary<string, object> properties = new Dictionary<string, object>();
        properties.Add("User_Name", new InArgument<string>());

        var res = new ActivityBuilder();

        res.Name = "Task1";

        foreach (var item in properties)
        {
            res.Properties.Add(new DynamicActivityProperty { Name = item.Key, Type = item.Value.GetType(), Value = item.Value });
        }

        Sequence c = new Sequence();

        c.Activities.Add(new WriteLine { Text = "Hello " + properties["User_Name"] });

        res.Implementation = c;

        return res;
    }

Выводом всегда будет «Hello User_Name».

Спасибо!

1 Ответ

3 голосов
/ 14 апреля 2010

ОК. Я нашел ответ (и новый магический класс «VisualBasicValue»):

static ActivityBuilder CreateTask1()
    {
        Dictionary<string, object> properties = new Dictionary<string, object>();
        properties.Add("User_Name", new InArgument<string>());

        var res = new ActivityBuilder();

        res.Name = "Task1";

        foreach (var item in properties)
        {
            res.Properties.Add(new DynamicActivityProperty { Name = item.Key, Type = item.Value.GetType(), Value = item.Value });
        }

        Sequence c = new Sequence();

        c.Activities.Add(new WriteLine { Text = new VisualBasicValue<string> { ExpressionText = "\"Hello \" + User_Name" } });

        res.Implementation = c;

        return res;
    }
...