如何获取NetworkInterfaceInfo子类型?

时间:2014-04-25 05:45:46

标签: c# windows-phone-8

我遇到了从Microsoft.Phone.Net.NetworkInformation.NetworkInterfaceSubType返回SubType的问题。我的主要问题是如何调用我的方法返回所需的信息。我收到一条错误说明以下内容

  

类型' Microsoft.Phone.Net.NetworkInformation.NetworkInterfaceInfo'   没有定义构造函数。

MainPage.xaml.cs中

private void CallSubType()
{
    NetworkInterfaceInfo n = new NetworkInterfaceInfo(); //Error occurs here
    SubtypeTextBox.Text = GetInterfaceSubTypeString(n));
}

private string GetInterfaceSubTypeString(NetworkInterfaceInfo n)
{
    if (n.InterfaceSubtype.ToString() == "WiFi")
        return "Wireless";
    else if ((n.InterfaceSubtype.ToString() == "Cellular_LTE") | (n.InterfaceSubtype.ToString() == "Cellular_EHRPD"))
        return "4G";
    else
        return AppResources.MainPage_NetworkStatus_Unknown;
}

1 个答案:

答案 0 :(得分:0)

要获取对象,您应该使用NetworkInterfaceList.Current属性,您无法自己创建它,因为它具有内部构造函数。

var infoList = new NetworkInterfaceList();
NetworkInterfaceInfo n = infoList.Current;

你也可以像这样检查整个NetworkInterfaceInfo的对象:

var infoList = new NetworkInterfaceList();
do
{
     NetworkInterfaceInfo n = infoList.Current;
}
while (infoList.MoveNext());

此外,您应该更改逻辑||而不是|,正如@Yuval Itzchakov指出的那样。