Я экспериментировал с библиотеками UWP и смог решить ее, используя ссылки UWP.
Я добавил эту ссылку:
C:\Program Files (x86)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd
И использовал этот код для проверки дозированных соединений:
private void CheckIsMetered()
{
var profile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
IsInternetAvailable = profile != null && profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
if (IsInternetAvailable)
IsMetered = profile.GetConnectionCost().NetworkCostType != Windows.Networking.Connectivity.NetworkCostType.Unrestricted;
}
Я использую событие NetworkStatusChanged для повторной проверки IsMetered.
CheckIsMetered();
NetworkInformation.NetworkStatusChanged += (s) => CheckIsMetered();
Это работает в моем приложении WPF.