WriteOnly (Visual Basic)

指定可以写入属性,但不能读取属性。

注解

规则

声明上下文。 只能在模块级别使用 WriteOnly 。 这意味着属性的 WriteOnly 声明上下文必须是类、结构或模块,不能是源文件、命名空间或过程。

可以将属性声明为 WriteOnly,但不能声明变量。

何时使用 WriteOnly

有时,你希望使用的代码能够设置值,但不能发现它是什么。 例如,敏感数据(如社交注册号或密码)需要受到未设置它的任何组件的访问保护。 在这些情况下,可以使用 WriteOnly 属性来设置值。

重要

定义和使用 WriteOnly 属性时,请考虑以下附加保护措施:

  • 重写。 如果该属性是类的成员,则允许它默认为 NotOverridable,并且不声明它 OverridableMustOverride。 这样可以防止派生类通过替代进行意外访问。

  • 访问级别。 如果将属性的敏感数据保存在一个或多个变量中,请声明它们 “专用 ”,以便其他代码无法访问它们。

  • 加密。 以加密形式(而不是纯文本)存储所有敏感数据。 如果恶意代码以某种方式获得对内存区域的访问,则使用数据会更加困难。 如果需要序列化敏感数据,加密也很有用。

  • 重 置。 当定义属性的类、结构或模块被终止时,将敏感数据重置为默认值或其他毫无意义的值。 当为常规访问释放内存区域时,这将提供额外的保护。

  • 坚持。 如果可以避免,请不要保留任何敏感数据(例如磁盘上)。 此外,请勿将任何敏感数据写入剪贴板。

修饰 WriteOnly 符可用于此上下文:

财产声明

另请参阅