在.net 1.x当中,使用microsoft.win32.registrykey类的getvalue方法读取注册表数据时,其实数据都是经过“处理”的;
例如,某个字符串数据本来的值是%systemroot%\system32\iologmsg.dll但是用getvalue方法得到的数据却是c:\windows\system32\iologmsg.dll
也就是说,在读取注册表中的字符串时,系统会自作主张地替你展开环境变量。
这的确省去我们调用environment.expandenvironmentvariables方法的麻烦,但是反过来,当我们希望原封不动地拷贝一个注册表的字符串时则束手无策。
在.net2.0当中,我们惊喜地发现microsoft.win32.registrykey类有了一个小小的改动,就是其getvalue方法增添了一个新的重载:
public object getvalue (
string name,
object defaultvalue,
registryvalueoptions options
)
该方法的第三个参数是一个枚举,目前只有一个有用的值就是donotexpandenvironmentnames。
指定该值,getvalue得到的结果就是没有经过展开的数据了。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论