IPropertyBag Interface

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
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<string>
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(string, object) void
Adds a key/value pair to the property bag
Contains(PropertyEntry) bool
Gets a flag indicating whether the specified key and value are present in the property set.
Contains(string, object) bool
Gets a flag indicating whether the specified key and value are present in the property set.
ContainsKey(string) bool
Gets a flag indicating whether the specified key has any entries in the property set.
Get(string) 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(string, bool) 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(string, Enum) 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(string, int) 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, string) 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(PropertyEntry) void
Removes a specific PropertyEntry. If the entry is not found, no errr occurs.
Remove(string, object) void
Removes a single entry if present. If not found, no error occurs.
Remove(string) void
Removes all entries for a key from the property set. If the key is not found, no error occurs.
Set(string, object) void
Sets the value for a key, removing any other values that are already in the property set.