C# 如何检查ComputerName是否为INT
我想我累了,或者盯着这个看太久了。。我需要第二副眼睛。如果有什么事情看起来太冗长,请告诉我 我的目标 检查本地计算机名,如果是INT,则将其添加到HTTPClient请求,以从WebService返回相关值。FYI-HostName是此特定表的ID值。但是,如果值为NOT和INT,那么我想用一个假值替换实际值,这样我就可以正确地查看页面加载 最后,在客户的环境中,如果运行此页面的本地计算机不是正确组的一部分,我将关闭此页面的显示。这样他们就根本看不到这个配置页面 实际结果 因为我正在运行应用程序的当前VM的名称没有INT,所以当我输入断点检查值时,会得到以下结果。但我仍然可以访问localhost:2463/api/devices/101070701并查看JSON结果。所以我只需要让UWP放置好,这样我就可以在应用程序中看到它 主机名=0 _HostName=LOCALVM\u ComputerName 设备服务C# 如何检查ComputerName是否为INT,c#,web-services,uwp,windows-10,C#,Web Services,Uwp,Windows 10,我想我累了,或者盯着这个看太久了。。我需要第二副眼睛。如果有什么事情看起来太冗长,请告诉我 我的目标 检查本地计算机名,如果是INT,则将其添加到HTTPClient请求,以从WebService返回相关值。FYI-HostName是此特定表的ID值。但是,如果值为NOT和INT,那么我想用一个假值替换实际值,这样我就可以正确地查看页面加载 最后,在客户的环境中,如果运行此页面的本地计算机不是正确组的一部分,我将关闭此页面的显示。这样他们就根本看不到这个配置页面 实际结果 因为我正在运行应用程序
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;
公共类设备页面视图模型:视图模型库
{
私有字符串_Hostname=DeviceIDService.Instance.LocalName;
公共字符串主机名{get;set;}
公共覆盖异步OnNavigatedToAsync()
{
int主机名;
bool isNumeric=int.TryParse(_主机名,out主机名);
如果(isNumeric==true)
{
主机名=101070701;
}
其他的
{
字符串hostName=hostName.ToString();
}
var uriD=新Uri(“http://localhost:2463/api/Devices/“+主机名);
HttpClient=新的HttpClient();
尝试
{
var JsonResponseD=await client.GetStringAsync(uriD);
var DeviceResult=JsonConvert.DeserializeObject(JsonResponseD);
设备=设备结果;
因为Serge实际上并没有提供答案,而是提供了一条评论。我想展示他提供的解决我问题的方法。这是我修复的方法。我更改了一些值,但这对我有效
- _主机名-从pc获取实际计算机名时设置
- hostName-如果是INT,则将设置为_hostName
- 主机名-如果实际名称不是INT,则将更改为101070701
- 主机名-如果ComputerName为INT,则不显示主机名
int hostName; bool isNumeric = int.TryParse(_Hostname, out hostName); if (!isNumeric) {HostName = 101070701} else { HostName = hostName; }
true
。请注意if语句中的感叹号:if(!isNumeric)
;这相当于if isNumeric为false。这是一个.ok..我会尝试的..谢谢Serge。如果计算机名是999999999999999
?