PropertyBag in VB .NET






1.92/5 (4 votes)
This article gives an overview of the propertybag class implemented in VB.NET.
Introduction
This article gives an overview of the propertybag
class implemented in VB.NET.
Basically Propertybag
is a virtual container which can hold any type of data and can be used to persist objects between instances. This class simulates the behaviour of propertybag
supported in VB 6.0.
PropertyBag Class
The PropertyBag
class exposes the following methods/properties which can be used to add/access the objects in it.
WriteProperty
Definition
Public Sub WriteProperty(ByVal szobjDesc As String, ByVal objValue As Object)
szObjDesc
: Description of the objectobjValue
: Object
Description
Writes the given object to the bag with the specified description.
ReadProperty
Definition
Public Function ReadProperty(ByVal szobjDesc As String, _
Optional ByVal ObjDefValue As Object = Nothing) As Object
szObjDesc
: Description of the objectObjDefValue
: Default value to be returned if the object was not found in the bag. Defaults to nothing if not specified.
Description
Returns the specified object from the bag. If the object is not found, default value specified in the method call will be returned.
Contents
Definition
Public Property Contents()
Description
Gets or sets the Contents
of the bag.
Get
: Returns theContents
of the bag as a byte array (in binary serialized format)Set
: Sets theContents
of the bag with the given byte array
Clear
Definition
Public Sub Clear()
Description
Clears the contents of the bag.
Using the Code
Here are the steps to be followed to access the PropertyBag
in your application:
- Add a reference to the
PropertyBag
Assembly in your application. ThePropertyBag
class becomes visible now. - Instantiate the Object:
Dim pbag as New PropertyBag()
- Add objects to the bag with description (which will be used later to retrieve the objects from the bag). Only objects which are serializable should be added to the bag, or else an exception will be thrown when you try to retrieve the contents of the bag using the
contents
property.
pbag.WriteProperty("iInputNum",1)
- Read the objects from the bag when needed:
Dim iValue as integer iValue = pbag.ReadProperty("iInputNum")
- In case you want to send the data in
Propertybag
across processes, serialize it to binary format and send the data:
Dim bytearr() as byte bytearr= pbag.Contents RemoteSub(bytearr) // RemoteSub which runs in separate process Public sub RemoteSub(bytearr() as byte) Dim pbag as New Propertybag Dim iValue as integer pbag.contents = bytearr iValue = pbag.ReadProperty("iInputNum") ........ End Sub