我想我已经厌倦了或者盯着这个太久了......我需要第二眼。如果有什么看起来太长,请告诉我。
我的目标 要检查本地计算机名称以及它是否为INT,然后将其添加到HTTPClient请求以从WebService返回相关值。 FYI - HostName是此特定表的ID值。但是,如果值为NOT和INT,那么我想替换假值的实际值,以便我可以正确地看到我的页面加载。
最终,在客户的环境中,如果运行该页面的本地计算机不属于正确的组,我将关闭此页面的显示。这样他们根本不会看到这个配置页面。
实际结果 因为我正在运行应用程序的当前VM没有名称的INT,所以当我输入断点来检查值时,我得到以下内容。但我仍然可以访问localhost:2463 / api / devices / 101070701并查看JSON结果。所以我只需要让UWP放好,这样我就能在APP中看到它。
HostName = 0
_HostName = LOCALVM_ComputerName。
DeviceIDService
public class DeviceIDService
{
public static DeviceIDService Instance = new DeviceIDService();
private DeviceIDService()
{
foreach (HostName DisplayName in NetworkInformation.GetHostNames())
{
if (DisplayName != null)
{
var hostNames = NetworkInformation.GetHostNames();
var hostName = hostNames.FirstOrDefault(name => name.Type == HostNameType.DomainName)?.DisplayName ?? "???";
LocalName = hostName;
break;
}
}
public string LocalName { get; set; }
}
}
DevicePageViewModel
public class DevicePageViewModel : ViewModelBase
{
private string _Hostname = DeviceIDService.Instance.LocalName;
public string hostName { get; set; }
public override async OnNavigatedToAsync ()
{
int HostName;
bool isNumeric = int.TryParse(_Hostname, out HostName);
if (isNumeric == true)
{
HostName = 101070701;
}
else
{
string hostName = HostName.ToString();
}
var uriD = new Uri("http://localhost:2463/api/Devices/" + HostName);
HttpClient client = new HttpClient();
try
{
var JsonResponseD = await client.GetStringAsync(uriD);
var devicesResult = JsonConvert.DeserializeObject<List<Device>>(JsonResponseD);
Devices = devicesResult;
答案 0 :(得分:0)
因为Serge实际上没有提供答案而是评论。我想展示他提供的解决了我的问题。这是我修复的。我改变了几个值,但这对我有用..
HostName - 如果ComputerName是INT
,将保持不变int hostName;
bool isNumeric = int.TryParse(_Hostname, out hostName);
if (!isNumeric) {HostName = 101070701}
else
{
HostName = hostName;
}