代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

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

  •  7
  • JL. Hans Passant  · 技术社区  · 15 年前

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

    例如

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

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

    我知道在网络中,获取httpContext并执行response.write是可能的。

    5 回复  |  直到 10 年前
        1
  •  16
  •   Jon Skeet    15 年前

    是的, Console.WriteLine ETC在类库中工作很好…但不能保证 到控制台。如果您从WinForms应用程序或Web应用程序中使用它,那么输出可能毫无用处…

    您是否想过使用日志库,例如 log4net 相反?

        2
  •  4
  •   Darin Dimitrov    15 年前

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

        3
  •  2
  •   Thomas Danecker    15 年前

    当然可以,只要用 System.Console.Write...

        4
  •  2
  •   Sandeep Datta    15 年前

    当然,如果库客户机是一个控制台应用程序,只需调用console.writeline(“”)和您的消息。

    如果您没有基于控制台的客户机,并且希望打开一个自己使用的控制台,那么您需要使用p/invoke来调用 ConsoleAlloc .参见 here 对于P/Invoke声明的一些帮助。

    我已经说过,我还必须指出,从类库写入控制台显然是一种糟糕的设计,您应该考虑改用点网跟踪/日志记录机制(请阅读有关System.Diagnostics的Microsoft文档)。

        5
  •  1
  •   Caio    10 年前
    1. 如果您的解决方案中有一个控制台应用程序项目,请像往常一样使用console.writeline()。
    2. 否则,如果您有类库项目,请使用System.Diagnostics.Debug.WriteLine()。

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

    好消息: -你的短信会单独出现在他们的行里。只有来自命令系统.diagnostics.debug.writeline()的结果。