2013-03-25 85 views
0

我最近爲我正在做的WPF應用程序創建了此代碼。我重用代碼的項目是Windows 8應用程序。代碼本身是相同的,所以我真的不知道可能是什麼問題。它們之間的唯一區別當然是應用程序和正在使用的.NET Framework。在WPF應用程序中,我的目標是.NET 3.0以及我使用.NET 4.5的Windows 8應用程序。網絡接口不包含「」的定義

可以這樣說,這是一個擴展方法:

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()) 

它會導致錯誤,指出在NetworkInterface中不存在GetAllNetworkInterfaces()。這是確切的錯誤:

Error 15 'System.Net.NetworkInformation.NetworkInterface' does not contain a definition for 'GetAllNetworkInterfaces' 

是否有什麼,我不知道在Windows 8應用程序中重用WPF應用程序的代碼?

更新:使用ianainterfacetype我能解決一半的我的擴展方法,因爲我能夠告訴我們,如果他們是以太網,無線,或隧道。我仍在尋找一種方法來確定它們是否由VirtualBox或VMware創建。

對於那些想了解ianainterfacetype的人,你可以找到信息here

+0

這可能會幫助您開始使用WinRT的網絡API:http://stackoverflow.com/questions/10336521/query-local-ip-address/10456778#10456778 – Phil 2013-03-25 17:09:33

回答

1

GetAllNetworkInterfaces不適用於Windows應用商店(城域)。 MSDN Documentation表示只有GetIsNetworkAvailable方法可用於Windows應用商店應用程序。綠色公文包指示它是否可用於Windows應用商店應用。

我不知道任何可用於Windows應用商店的API都可以提供您正在查找的信息。

+0

有沒有解決方法? – tylerbhughes 2013-03-25 16:27:01

+0

@RandomlyKnighted不幸的是,我認爲不是。 – vcsjones 2013-03-25 16:27:27

+0

找到了解決方法。 – tylerbhughes 2013-04-30 02:47:58