1

最近、実行していたWPFアプリケーション用にこのコードを作成しました。コードを再利用しているプロジェクトは、Windows8アプリケーションです。コード自体は同じなので、何が問題になるのかはよくわかりません。もちろん、それらの唯一の違いは、使用されているアプリケーションと.NETFrameworkです。WPFアプリケーションでは.NET3.0をターゲットにしており、Windows8アプリケーションでは.NET4.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'

Windows 8アプリケーションでWPFアプリケーションのコードを再利用することについて私が知らないことがありますか?

更新: ianainterfacetypeを使用して、拡張メソッドの半分を修正できました。これは、拡張メソッドがイーサネット、ワイヤレス、またはトンネルのいずれであるかを判別できたためです。それらがVirtualBoxによって作成されたのかVMwareによって作成されたのかを判断する方法をまだ探しています。

ianainterfacetypeについて知りたい人は、ここで情報を見つけることができます。

4

1 に答える 1

2

GetAllNetworkInterfacesWindowsストア(メトロ)アプリでは利用できません。MSDNのドキュメントGetIsNetworkAvailableには、 Windowsストアアプリで使用できるのはメソッドのみであることが示されています。緑のブリーフケースは、Windowsストアアプリで使用できるかどうかを示します。

探している情報を提供できるWindowsストアアプリで利用できるAPIを知りません。

于 2013-03-25T16:26:02.173 に答える