C#ping无法正常工作

时间:2016-02-22 11:41:13

标签: c#

我有这个ping行

def no_ws(string,which='left'):
    """
    Which takes the value of 'left'/'right'/'both'/'all' to remove relevant 
    whitespace.
    """
    remove_chars = (' ','\n','\t')
    first_char = 0; last_char = 0

    if which in ['left','both']:
        for idx,letter in enumerate(string):
            if not first_char and letter not in remove_chars:
                first_char = idx
                break
        if which == 'left':
            return string[first_char:]

    if which in ['right','both']:
        for idx,letter in enumerate(string[::-1]):
            if not last_char and letter not in remove_chars:
                last_char = -(idx + 1)
                break
        return string[first_char:last_char+1]

    if which == 'all':
        return ''.join([s for s in string if s not in remove_chars])

但它会引发错误说明:

  

无法找到类型或命名空间“Ping”

我已经尝试使用new Ping().Send("8.8.8.8").RoundtripTime.ToString() + "ms"; 导入System.Net但没有运气。

我正在构建using System.Net;(将使用Universal Windows Application

运行)

它可能是基本的东西,但我是C#的新手。

3 个答案:

答案 0 :(得分:2)

导入System.Net.NetworkInformation。

一个好方法是使用Visual Studio中的对象浏览器来查找丢失的类。您可以搜索Ping,对象浏览器将显示您需要的命名空间。

答案 1 :(得分:2)

System.Net.NetworkInformation.Ping目前在通用Windows应用程序中不可用。它使用的Windows API调用并不存在于所有平台上。

ICMP in Windows 10 Universal Apps

答案 2 :(得分:1)

使用指令

如果找不到类型,请确保已添加正确的使用 指令即可。

using System.Net.NetworkInformation;

当覆盖Ping - Type关键字时,它必须显示System.Net.NetworkInformation.Ping,否则找不到程序集。

参考

查找Ping-Class here会告知该类所在的dll。在这种情况下,它是System.dll。请务必将其添加到项目参考

否则

如果这也不起作用,我想你以某种方式声明了一个自定义命名空间,它隐藏了Ping类的命名空间。

因此,如果您在<{1}} - 命名空间内编写代码 ,如下所示(甚至是System.Net.NetworkInformation):

System.Net

这会隐藏请求的命名空间。我建议在这种情况下使用另一个命名空间

注意

当然,我没有抓住其他部分的所有可能性。所以请在评论中添加完成,我将添加它们。