我有一个sln,其中一个consile应用程序是thr解决方案的首发。
如何从库项目登录到控制台?
(我的意思是dll项目有可能不允许这样做,
因为它并不总是由控制台应用程序运行。有时候通过其他框架,没有?)
答案 0 :(得分:4)
技术上任何代码都可以使用System.Console
类写入控制台。但是,由于多种原因,图书馆执行此操作并不是一种好的形式,包括:
相反,您通常会使用日志抽象,例如System.Diagnostics.TraceSwitch
或log4net等日志库提供的抽象抽象。然后,您可以将应用程序配置为将日志记录语句重定向到控制台,另一个文件,数据库或您真正喜欢的任何内容。
答案 1 :(得分:0)
如果你是dll写入控制台,而它是控制台应用程序的一部分,它实际上会写入控制台就好了。但是我认为你本能地知道你可能不应该从aa库那样做,因为正如你所说,你的客户端应用程序会想要以不同的方式呈现它,例如web应用程序为html,WPF应用程序为XAML等。
我建议您只是在库中提供一种机制,将您的消息作为字符串返回,然后将其留给客户端应用程序进行渲染。
答案 2 :(得分:0)
您还可以抽象出一个事件,以便类库在需要记录某事时发布事件;控制台应用程序可以订阅该事件并制作一个简单的Console.WriteLine()
有关详细信息,请参阅
http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx