в новинку для Windows Workflow [WF], и заинтересованный оценкой WF для бизнес-целей. Я решил работать посредством введения
[TestMethod]
public void TestMethod ()
{
TextWriter writer = new StringWriter ();
Sequence sequence = new Sequence
{
Activities =
{
// so, assigning a reference type [eg StringWriter]
// as target is prohibited in WF4RC. what or how do
// i assign a target? introduction cited above may
// not be current [ie may be Beta2, not RC] so ... ?
new WriteLine { Text = "Hello", TextWriter = writer },
new WriteLine { Text = "World", TextWriter = writer }
}
};
// !!! BLOWS UP !!!
WorkflowInvoker.Invoke (sequence);
}
и встреченный
Метод тестирования SomeTests. SomeTests. TestMethod выдал исключение: Система. Операции. InvalidWorkflowException: со следующими ошибками встретились при обработке дерева рабочего процесса: 'Литерал': Литерал только поддерживает типы значения и неизменную систему типов. Строка. Система типов. IO.TextWriter не может использоваться в качестве литерала.
Вводя по абсолютному адресу вокруг, я нашел эту статью, описывающую, что, кажется, ошибка, которую я вижу выше.
Будучи плохо знакомым с WF, я действительно не понимаю изменения или предписанного метода для работы вокруг этого. Так, мой вопрос,
С WF4RC, как каждый [правильно] использует WriteLine
действие?
Ack, k, поэтому мысленное примечание: попробуйте все варианты поиска Google. Нашел это после поиска
WriteLine activity WF RC
Решение состоит в том, чтобы обернуть его в LambdaValue
, примерно
[TestMethod]
public void TestMethod ()
{
StringWriter writer = new StringWriter ();
Sequence sequence = new Sequence
{
Activities =
{
new WriteLine
{
Text = "Hello",
TextWriter = new LambdaValue<TextWriter> (n => writer)
},
new WriteLine
{
Text = "World",
TextWriter = new LambdaValue<TextWriter> (n => writer)
}
}
};
WorkflowInvoker.Invoke (sequence);
Assert.
AreEqual (
"Hello\r\nWorld\r\n",
writer.GetStringBuilder ().ToString ());
}
, что мне кажется странным , но я буквально противоположность «эксперту»: P
Я все равно приветствую альтернативы, если они есть у кого-нибудь.