C#系统.网络库与命令行网络工具



作为C#应用程序的一部分,我正在执行一些相对简单的网络命令。(ping、ipconfig、tracert、nslookup等(

我已经阅读了关于在一般意义上何时使用C#与CMD/PowerShell的答案:https://stackoverflow.com/a/4188135/8887398

然而,我特别想知道网络和系统。Net库中,与在C#应用程序中创建新的命令行Process()并以这种方式执行相比,花时间编写代码在C#中实现这些功能有什么主要优势吗?(Process()路由在C#应用程序中非常简单/易于编码(

问题:我用C#系统实现网络命令的主要优势是什么。Net库与在C#应用程序中创建新的Process()并在内部像使用命令行一样进行?

启动流程肯定没有错。您甚至可以启动PowerShell,并将其用于PowerShell中易于执行的操作序列。

开始一个过程并不像你想象的那么容易。

  1. 例如,您需要读取标准输出和错误。否则,进程将随机挂起。要做到这一点非常困难
  2. 与使用相比,从命令中获取结果更加困难。NET类。在里面NET中,您可以取回对象和异常。进程只能向您发送文本和错误代码
  3. 还有更多的开销。这是否重要取决于此类行动的频率
  4. 您可以使子进程成为孤立进程。最好的解决方案是使用Windows作业对象在父级退出时杀死子树

所以这取决于具体情况。我肯定会从C#中执行ping,因为这很容易做到。其他命令可能会从启动进程中受益更多。

最新更新