【发布时间】:2014-02-26 23:47:06
【问题描述】:
我有这个工作查询
ManagementObject pnpdevice = new ManagementObjectSearcher(String.Format(
"select * from Win32_PnPEntity where DeviceID='{0}'",
"USB\\\\VID_046D&PID_C52B&MI_00\\\\6&48E0D58&0&0000")).First();
我刚刚意识到我需要对一个斜杠使用四斜杠:两个在 c# 中转义,两个在 wmi 中转义。
我的问题是如何以编程方式而不是手动执行此操作。通常我当然会在字符串前面使用@ 来转义,所以这也可以:
ManagementObject pnpdevice = new ManagementObjectSearcher(String.Format(
"select * from Win32_PnPEntity where DeviceID='{0}'",
@"USB\\VID_046D&PID_C52B&MI_00\\6&48E0D58&0&0000")).First();
但是我如何使用字符串变量来做到这一点?
ManagementObject pnpdevice = new ManagementObjectSearcher(String.Format(
"select * from Win32_PnPEntity where DeviceID='{0}'",
device["DeviceID"].ToString())).First();
这没有我需要的任何转义,并且作为无效查询失败。写@device["DeviceID"].ToString() 不行。
有什么想法吗?
【问题讨论】: