Summary
A PropertyBag represents a collection of name/value pairs
that allows duplicate entries with the same key. Methods
are provided for adding a new pair as well as for setting
a key to a single value. All keys are strings but values
may be of any type. Null values are not permitted, since
a null entry represents the absence of the key.
The entries in a PropertyBag are of two kinds: those that
take a single value and those that take multiple values.
However, the PropertyBag has no knowledge of which entries
fall into each category and the distinction is entirely
up to the code using the PropertyBag.
When working with multi-valued properties, client code
should use the Add method to add name/value pairs and
indexing to retrieve a list of all values for a given
key. For example:
bag.Add("Tag", "one");
bag.Add("Tag", "two");
Assert.That(bag["Tag"],
Is.EqualTo(new string[] { "one", "two" }));
When working with single-valued propeties, client code
should use the Set method to set the value and Get to
retrieve the value. The GetSetting methods may also be
used to retrieve the value in a type-safe manner while
also providing default. For example:
bag.Set("Priority", "low");
bag.Set("Priority", "high"); // replaces value
Assert.That(bag.Get("Priority"),
Is.EqualTo("high"));
Assert.That(bag.GetSetting("Priority", "low"),
Is.EqualTo("high"));
- Namespace
- TCLite
.Interfaces - Interfaces
-
- IXmlNodeBuilder
- IEnumerable
graph BT
Type-.->Interface0["IXmlNodeBuilder"]
click Interface0 "/tc-lite/api/TCLite.Interfaces/IXmlNodeBuilder"
Type-.->Interface1["IEnumerable"]
Type["IPropertyBag"]
class Type type-node
Syntax
public interface IPropertyBag : IXmlNodeBuilder, IEnumerable
Properties
Name | Value | Summary |
---|---|---|
Count | int |
Get the number of key/value pairs in the property bag
|
Keys | ICollection |
Gets a collection containing all the keys in the property set
|
this[string] | IList |
Gets or sets the list of values for a particular key
|
Methods
Name | Value | Summary |
---|---|---|
Add |
void |
Adds a key/value pair to the property bag
|
Contains |
bool |
Gets a flag indicating whether the specified key and
value are present in the property set.
|
Contains |
bool |
Gets a flag indicating whether the specified key and
value are present in the property set.
|
ContainsKey |
bool |
Gets a flag indicating whether the specified key has
any entries in the property set.
|
Get |
object |
Gets a single value for a key, using the first
one if multiple values are present and returning
null if the value is not found.
|
GetSetting |
bool |
Gets a single boolean value for a key, using the first
one if multiple values are present and returning the
default value if no entry is found.
|
GetSetting |
Enum |
Gets a single enum value for a key, using the first
one if multiple values are present and returning the
default value if no entry is found.
|
GetSetting |
int |
Gets a single int value for a key, using the first
one if multiple values are present and returning the
default value if no entry is found.
|
GetSetting |
string |
Gets a single string value for a key, using the first
one if multiple values are present and returning the
default value if no entry is found.
|
Remove |
void |
Removes a specific PropertyEntry. If the entry is not
found, no errr occurs.
|
Remove |
void |
Removes a single entry if present. If not found,
no error occurs.
|
Remove |
void |
Removes all entries for a key from the property set.
If the key is not found, no error occurs.
|
Set |
void |
Sets the value for a key, removing any other
values that are already in the property set.
|