Używanie metod rozszerzenia C # z zarządzanego C ++ / CLI

Wybacz mi, jeśli moja terminologia jest trochę zła. Moja wiedza na temat zarządzanego C ++ / CLI jest bardzo ograniczona.

Mam aplikację MFC, która używa biblioteki DLL z włączoną opcją / clr. Ta biblioteka DLL używa kilku bibliotek DLL C # do komunikacji z serwerem za pomocą WCF. W większości działa to dobrze.

W jednej z bibliotek DLL C # dodałem metodę rozszerzenia do klasy System.Net.IPAddress, która pobiera maskę podsieci dla obiektu IPAddress (przy użyciu klasy UnicastIPAddressInformation i jej maski IPv4). Metoda rozszerzenia działa świetnie po stronie C #, ale nie mogę zrozumieć, jak jej użyć w zarządzanym kodzie C ++ / CLI.

Po pierwsze, czy to możliwe? Jeśli tak, to jak wygląda składnia w zarządzanej stronie C ++ / CLI? Czy muszę korzystać z opcji / clr: pure, aby to działało?

Oto przykład metody rozszerzenia:

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);
    }
}

W moim zarządzanym kodzie C ++, w jaki sposób korzystam z tej metody rozszerzenia, jeśli jest to możliwe?

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???

questionAnswers(1)

yourAnswerToTheQuestion