我想我累了或盯着这个太久了。.我需要第二张眼睛。如果有什么看起来太长了,请告诉我。
我的目标要检查本地计算机名称,如果是INT,请将其添加到HTTPCLIENT请求中,以从WebService返回相关值。仅供参考 - 主机名是此特定表的ID值。但是,如果该值不是和int,那么我想替换假伪造的实际值,以便我可以正确看到我的页面加载。
最终,在客户的环境中,如果运行它的本地计算机,我将关闭此页面的显示,这不是正确组的一部分。这样,他们根本就不会看到此配置页面。
实际结果由于我正在运行的当前VM没有该名称的INT,因此当我放入断点以检查值时,我会得到以下内容。但是我仍然可以转到Localhost:2463/api/设备/101070701,并查看JSON结果。因此,我只需要让UWP放置好,以便在应用程序中看到它。
主机名= 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;
因为Serge实际上没有提供答案,而是评论。我想展示他提供的解决问题的东西。这是我修复的。我更改了几个值,但这对我有用。
- _hostName-从PC获取实际Computername时设置。
- 主机名 - 如果是int ,将设置为_hostName
- 主机名 - 如果实际名称不是int ,将更改为101070701
主机名 - 如果计算是int
int hostName; bool isNumeric = int.TryParse(_Hostname, out hostName); if (!isNumeric) {HostName = 101070701} else { HostName = hostName; }