- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 MonoDevelop 中创建一个针对 OS X 上的 Mono/.NET 4.0 的 Mono 控制台应用程序,以用作 TCP 套接字服务器。
以下代码行失败(您通常会在 Windows 端使用):
var interfaces = NetworkInterface.GetAllNetworkInterfaces();
... 出现错误 System.DllNotFoundException: iphlpapi.dll
据我所知,这仅在 Windows 和 Linux 上受支持。然而,似乎还有另一种为 Mac 设计的方法:
System.Net.NetworkInformation.MacOsNetworkInterface.GetAllNetworkInterfaces();
虽然这似乎被 MonoDevelop 识别,但它无法编译并出现 The type or namespace 'MacOsNetworkInterface' does not exist in the namespace 'System.Net.NetworkInformation'.
错误。已经有对 System 和 System.Net 的引用。
我错过了什么?
编辑: 发现当我在 MonoDevelop 中创建新的 C# 控制台应用程序时,NetworkInterface.GetAllNetworkInterfaces()
确实有效,但在现有项目中无效(NetworkComms.net ) - 它们都针对相同的 Mono、.NET 4.0 以及对 System
和 System.Net
v4.0.0.0 的相同引用,有什么区别?
最佳答案
如果您需要调用低级 OS X API/框架,MonoMac是你最好的人选。然而,并非所有 OS X 框架都绑定(bind)在 MonoMac 中。从 Apple Developer 文档中,我认为您需要 SystemConfiguration API 中的函数目前不受 MonoMac 的约束。
但是您始终可以使用 DllImport 自己为缺少的函数创建绑定(bind)。我最近使用 DiskArbitration Framework(也未绑定(bind))完成了它,您可以将其用作引用:http://git.gnome.org/browse/banshee/tree/src/Backends/Banshee.Osx/Banshee.Hardware.Osx/LowLevel?id=136fcbcc2e0421aba6be79306dc111fdabb3c749
关于c# - 如何在 Mac 上的 Mono 中获取网络接口(interface)列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354858/
我是一名优秀的程序员,十分优秀!