我正在获取并直接在属性中设置一个registrykey的值。该密钥在程序启动时打开,在退出时关闭。
public bool AlwaysSyncBeforeRun
{
get{ return Convert.ToBoolean(MayaRegistryKey.GetValue("AlwaysSyncBeforeRun")); }
set { MayaRegistryKey.SetValue("AlwaysSyncBeforeRun", value); }
}
此属性不适合频繁使用。
这是个好主意吗?
答案 0 :(得分:2)
我不认为这是一个好主意,因为使用您的类的开发人员可能不知道该属性内发生的事情,并且注册表访问具有安全隐患。如果使用您的类的应用程序没有注册表访问权限,那么对该属性的简单获取将导致异常。
对于这种情况,我最好使用该属性将值存储在内存中,并提供一些Load()方法来填充属性,并提供一个Save()方法,只要应用程序准备好保存到注册表就可以调用它。 / p>
.NET Framework设计指南中的此链接可能会提供其他上下文:Choosing Between Properties and Methods
答案 1 :(得分:1)
如果不是经常使用,为什么要保持开放?
你这样做可以提高性能。但是,在您的情况下,您不经常使用它。所以,我建议你可以打开键,读/写值并关闭它。这将是安全的。
答案 2 :(得分:0)
很多人都说你不应该在房产中拥有任何功能。
您是否尝试过编辑注册表项,而程序的引用是打开的?我没试过,但是如果你的应用程序在其运行的持续时间内锁定密钥,那么最好是读取密钥,存储它并在最后更新它。