2012-03-25 93 views
1

我有一个sln,其中一个consile应用程序是thr解决方案的开始。如何从非控制台应用程序项目写入控制台

如何从库项目登录到控制台?

(我指的是dll项目propapbly不允许,

,因为它并不总是由控制台应用程序运行。有时其他框架,不是吗?)

+0

你需要澄清事情有点 - 什么是“控制台”的意思是,你在这方面?你是否想为了调试的目的而记录/追踪事物,或者在任何时候都有一个控制台类型的输出 - 无论你的应用程序是form/wpf还是其他什么?什么是应用程序体系结构,以及控制台的用途 - 您是否需要“通用”解决方案或仅适用于一个应用程序... – NSGaga 2012-03-25 21:58:06

+0

我想将调试数据从BLL(库项目)写入屏幕,以便用户可以阅读 – 2012-03-27 19:00:11

回答

4

这在技术上是可行的任何代码使用System.Console类写入控制台。因为一个进程范围的锁需要同步的目的

    • 写入控制台相对昂贵:然而,这是不好的形式为库的多种原因这样做,包括来自库的控制台可能会让任何人从控制台应用程序中消耗该库。这将有可能使图书馆这样的障碍,它不会在这样的环境中使用

    相反,你通常会使用一个日志抽象如由System.Diagnostics.TraceSwitch或通过日志库,像log4net提供。然后,您可以配置应用程序,以将日志语句重定向到控制台,另一个文件,数据库或任何您真正喜欢的内容。

  • 0

    好吧,几点。

    如果你从控制台写入到控制台,而它是控制台应用程序的一部分,它实际上会写入控制台。不过,我认为你本能地知道你可能不应该从一个库中这样做,因为就像你说的那样,你的客户端应用程序将想要以不同的方式呈现它,例如web应用程序作为html,WPF应用程序作为XAML等。

    我建议你简单地在你的库中提供一个机制来将你的消息作为一个字符串返回,然后将它留给客户端应用程序来渲染他们喜欢的东西。

    相关问题