Сетевой интерфейс не содержит определения для

Недавно я создал этот код для приложения 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, вы можете найти информацию здесь.


person pallasmedia    schedule 25.03.2013    source источник
comment
Это может помочь вам начать работу с сетевым API WinRT: .com/questions/10336521/query-local-ip-address/   -  person Phil    schedule 25.03.2013


Ответы (1)


GetAllNetworkInterfaces недоступен для приложений Магазина Windows (метро). В документации MSDN указано, что для приложений Магазина Windows доступен только метод GetIsNetworkAvailable. . Зеленый портфель указывает, доступен ли он для приложений Магазина Windows.

Я не знаю ни одного API, доступного для приложений Магазина Windows, который может предоставить вам информацию, которую вы ищете.

person vcsjones    schedule 25.03.2013
comment
@RandomlyKnighted К сожалению, я так не думаю. - person vcsjones; 25.03.2013
comment
я не помню. Это было 5 лет назад. Я поищу свой старый код, если найду, то сообщу. - person pallasmedia; 19.10.2018