WriteOnly (Visual Basic)

指定只能写入但不能读取某一属性。

注解

规则

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

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

何时使用 WriteOnly

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

重要

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

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

  • 访问级别。 如果将属性的敏感数据放在一个或多个变量中,请将其声明为 Private,以便其他代码都无法访问它们。

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

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

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

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

Property Statement

另请参阅