指定可以写入属性,但不能读取属性。
注解
规则
声明上下文。 只能在模块级别使用 WriteOnly
。 这意味着属性的 WriteOnly
声明上下文必须是类、结构或模块,不能是源文件、命名空间或过程。
可以将属性声明为 WriteOnly
,但不能声明变量。
何时使用 WriteOnly
有时,你希望使用的代码能够设置值,但不能发现它是什么。 例如,敏感数据(如社交注册号或密码)需要受到未设置它的任何组件的访问保护。 在这些情况下,可以使用 WriteOnly
属性来设置值。
重要
定义和使用 WriteOnly
属性时,请考虑以下附加保护措施:
重写。 如果该属性是类的成员,则允许它默认为 NotOverridable,并且不声明它
Overridable
或MustOverride
。 这样可以防止派生类通过替代进行意外访问。访问级别。 如果将属性的敏感数据保存在一个或多个变量中,请声明它们 “专用 ”,以便其他代码无法访问它们。
加密。 以加密形式(而不是纯文本)存储所有敏感数据。 如果恶意代码以某种方式获得对内存区域的访问,则使用数据会更加困难。 如果需要序列化敏感数据,加密也很有用。
重 置。 当定义属性的类、结构或模块被终止时,将敏感数据重置为默认值或其他毫无意义的值。 当为常规访问释放内存区域时,这将提供额外的保护。
坚持。 如果可以避免,请不要保留任何敏感数据(例如磁盘上)。 此外,请勿将任何敏感数据写入剪贴板。
修饰 WriteOnly
符可用于此上下文: