VS 2008
我有一个在VB网站上找到的代码片段。
但由于某种原因,我无法将其转换为C#。
My.Computer.Network.IsAvailable
非常感谢,
答案 0 :(得分:4)
using System.Net.NetworkInformation;
internal class Program
{
private static void Main()
{
NetworkInterface.GetIsNetworkAvailable();
}
}
答案 1 :(得分:3)
是的,garethm是对的,这个类(网络)来自VB.NET库 - 如果在C#项目中使用,则需要引用Microsoft.VisualBasic程序集。
Microsoft.VisualBasic.Devices.Network n = new Microsoft.VisualBasic.Devices.Network();
if (n.IsAvailable)
{
// do stuff
}
适合我 - 我的网络可用:)。
就Network与NetworkInterface类的关系而言,它取决于您下一步要做什么。例如,Network有像NetworkAvailabilityChanged事件和UploadFile方法这样的好东西。另一方面,NetworkInterface可以为您提供一系列特定的技术信息,例如速度或是否支持多播。
BTW,没有任何关于使用Microsoft.VisualBasic命名空间的类的文档 - 这是.NET背后的核心思想,你可以使用程序集中的类,无论它们是用什么语言编写的。答案 2 :(得分:2)
我通常做的是编写一个小应用程序,然后在Reflector中加载项目并反汇编它。
但你可以使用这个类: System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged
答案 3 :(得分:1)
这似乎有效。尽管如此,这可能是非文档用法:
Microsoft.VisualBasic.Devices.Network net = new Microsoft.VisualBasic.Devices.Network();
if (net.IsAvailable)
{
Text = "Network is available";
}
else
{
Text = "Network unavailable";
}
请注意,我需要在项目中添加对Microsoft.VisualBasic的引用。
答案 4 :(得分:1)
VB库中不是整个“我的”东西吗?