Недавно я создал этот код для приложения WPF, которым занимался. Проект, в котором я повторно использую код, представляет собой приложение для Windows 8. Сам код такой же, поэтому я действительно не понимаю, в чем может быть проблема. Единственная разница между ними, конечно же, заключается в используемом приложении и .NET Framework. В приложении WPF я ориентировался на .NET 3.0, а для приложения Windows 8 использую .NET 4.5.
Как вы можете сказать, это метод расширения:
public static bool isTunnel(this NetworkInterface adapter)
{
return adapter.NetworkInterfaceType == NetworkInterfaceType.Tunnel;
}
Ошибка, которую он дает для этого метода:
Error 3 'System.Net.NetworkInformation.NetworkInterface' does not contain a definition for 'NetworkInterfaceType' and no extension method 'NetworkInterfaceType' accepting a first argument of type 'System.Net.NetworkInformation.NetworkInterface' could be found (are you missing a using directive or an assembly reference?)
Error 4 The name 'NetworkInterfaceType' does not exist in the current context
В моем модельном классе у меня аналогичная проблема. В этой строке:
foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces())
это вызывает ошибку, говорящую о том, что GetAllNetworkInterfaces() не существует в NetworkInterface. Вот точная ошибка:
Error 15 'System.Net.NetworkInformation.NetworkInterface' does not contain a definition for 'GetAllNetworkInterfaces'
Есть ли что-то, чего я не знаю о повторном использовании кода из приложения WPF в приложениях Windows 8?
Обновление: с помощью ianainterfacetype я смог исправить половину моих методов расширения, потому что я мог определить, были ли они Ethernet, Wireless или Tunnel. Я все еще ищу способ узнать, были ли они созданы VirtualBox или VMware.
Для тех, кто хочет узнать о типе интерфейса iana, вы можете найти информацию здесь.