如何检查ComputerName是否为INT

时间:2017-04-20 05:00:41

标签: c# web-services uwp windows-10

我想我已经厌倦了或者盯着这个太久了......我需要第二眼。如果有什么看起来太长,请告诉我。

我的目标 要检查本地计算机名称以及它是否为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;

1 个答案:

答案 0 :(得分:0)

因为Serge实际上没有提供答案而是评论。我想展示他提供的解决了我的问题。这是我修复的。我改变了几个值,但这对我有用..

  • _Hostname - 在从PC获取实际ComputerName时设置。
  • hostName - 如果是INT
  • ,将设置为_Hostname
  • HostName - 如果实际名称不是INT
  • ,将更改为101070701
  • HostName - 如果ComputerName是INT

    ,将保持不变
    int hostName;
    bool isNumeric = int.TryParse(_Hostname, out hostName);
    if (!isNumeric) {HostName = 101070701}
    else
    {
        HostName = hostName;
    }