写入“ writeline”消息以跟踪Windows Workflow中的窗口4.5

问题描述 投票:0回答:1
我的工作流可以在工作流中散布的多个“ Writeline”活动。 我想检索特定的“ writeline”的消息,并在跟踪窗口中显示在工作流程中的顺序中。 我已经在完成时尝试了以下尝试,其中显示了在执行结束时附加的所有“ writeline”消息:

wf.Extensions.Add(writer); wf.Completed = arg => { if (!string.IsNullOrEmpty(writer.ToString())) { //display } };

我正在寻找一种在工作流程中而不是完成时立即获取“ Writeline”消息的方法。
	

下面的链接帮助我考虑编写自定义文本作者来求解上述用途:

Redirecting Console.Writeline()totextBox

启用将字符附加到“作者”对象上并在工作流完成时将其打印到显示窗口(请参阅我的问题中的代码),我写了一个自定义文本作者,以打印每个“ writeline”活动的消息时(当新行)(”新行(”
”)遇到。下面的示例:

构建器:

c#-4.0 workflow-foundation-4
1个回答
0
投票

customTextwriter:

public class WriteLineTxtWriterClass : TextWriter { private Action<string, Brush> WriteUserMsgToUI { get; set; } private StringBuilder line; private byte counter; public WriteLineTxtWriterClass(Action<string, Brush> action) { WriteUserMsgToUI = action; lineText = new StringBuilder(); } public override void Write(char value) { if (value == '\r' || value == '\n') { counter++; } else { lineText.Append(value.ToString()); } if (counter == 2) { WriteUserMsgToUI(lineText.ToString(), Brushes.Brown); lineText.Clear(); counter = 0; } } public override void Write(string text) { WriteUserMsgToUI(text, Brushes.Brown); } } public override System.Text.Encoding Encoding { get { return System.Text.Encoding.Unicode; } }

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.