跨类共享TextBox.AppendText()方法的最简洁方法是什么?

时间:2014-07-22 15:22:22

标签: c#

假设我有一个Controller对象,它启动一个简单的Windows窗体。 Form中是一个文本框,我想记录我的程序输出。现在,我有一个Controller方法,它调用Form中的方法,然后将记录的消息放在文本框中。然后我在创建想要记录东西的对象时引用Controller并调用“Controller.Log(str)”,但这种方法对我来说似乎很脏。

你们会以什么方式解决这个问题,并保持代码松散耦合?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我选择类似于.net Trace类的Listener结构。 UI可以将回调传递到集中式日志记录服务(可能本身通过像Unity这样的IOC创建),并且记录器将其消息发送到该集中式日志记录服务。好消息是,可以有许多消息读者同时允许基于UI和磁盘的日志记录,而不会增加复杂性。

.net Trace架构是一个很好的起点。我可以在代码中的任何地方调用Trace.WriteLine,而无需耦合到监听器。