可以从类库C#中输出到控制台吗?

是否可以从类库中将值输出到控制台?

例如

Console App -> calls method in -> assembly > function 

是否可以在程序集的函数中编写console.out方法?

我知道在web中可以获取httpcontext,并做一个response.write。

是的, Console.WriteLine等在类库中可以正常工作……但是不能保证任何东西都在监听控制台。 如果您从WinForms应用程序或Web应用程序中使用它,那么输出可能绝对无处可寻……

您是否考虑过使用log4net等日志库?

这取决于将使用您的类库的应用程序类型。 如果在控制台应用程序中使用它,则输出将打印到控制台。 如果是WinForms,Windows服务或ASP.NET应用程序,则将忽略输出。

当然可以,只需使用System.Console.Write...

当然,如果库客户端是控制台应用程序,只需使用您的消息调用Console.WriteLine(“”)。

如果您没有基于控制台的客户端,并且您想要打开一个供您自己使用的控制台,那么您需要使用P / Invoke来调用ConsoleAlloc 。 请参阅此处以获取P / Invoke声明的一些帮助。

话虽如此,我还必须指出从类库中写入控制台绝对是糟糕的设计,你应该考虑使用点网跟踪/日志记录机制(仔细阅读System.Diagnostics上的Microsoft文档)

  1. 如果解决方案中有控制台应用程序项目,请像往常一样使用Console.WriteLine()。
  2. 否则,如果您有类库项目,请使用System.Diagnostics.Debug.WriteLine()。

坏消息: – 您的文本将位于输出中的所有行的中间。 – 你必须搜索它们。 我建议您选择输出中的所有文本并粘贴在记事本上。 找到你想要的东西会更容易。

好消息: – 你的文本将独自存在。 只有您的命令System.Diagnostics.Debug.WriteLine()的结果。