シリアライズのためにだけ利用し、一般開発者には使ってほしくないプロパティがあったので、なんとか見えなくする方法はないかと探した結果、以下のような属性をプロパティの頭につけることで実現できた。
_ Public Property OptionalItems() As ArrayList Get Return _OptionalItems End Get Set(ByVal Value As ArrayList) _OptionalItems = Value End Set End Property
ちなみに、上記の方法で隠したとしても直接プロパティ名を打たれたらふつうに使えるので、完全に使えなくなるわけではないことに注意しなければならない。