如果我的用词有误请谅解,我对托管的C++/CLI了解很有限。
我有一个使用启用/clr选项的dll的MFC应用程序。这个dll使用了几个C# dll来使用WCF与服务器通信。在大多数情况下,这个方法是有效的。
在其中一个C# dll中,我添加了一个扩展方法到System.Net.IPAddress类,以检索IPAddress对象的子网掩码(使用UnicastIPAddressInformation类及其IPv4Mask)。该扩展方法在C#端运行良好,但我无法弄清楚如何在托管的C++/CLI代码中使用它。
首先,这是否可能?如果是,则托管的C++/CLI端的语法是什么样的?我必须使用/clr:pure选项才能使其工作吗?
这是一个扩展方法的示例:
using System.Net;
using System.Net.NetworkInformation;
public static class IPAddressExtensions
{
public static IPAddress GetSubnetMask(this IPAddress address)
{
UnicastIPAddressInformation addressInfo = address.GetAddressInformation(); // elided
return ((addressInfo != null) ? addressInfo.IPv4Mask : null);
}
}
在我的托管C++代码中,如果可能的话,我该如何使用这个扩展方法?
unsigned long bytes= 0x010000FF; // example address - 127.0.0.1
IPAddress^ address = gcnew IPAddress(BitConverter::GetBytes(bytes));
IPAddress^ subnet = address->GetSubnetMask(); // how do I do this???