/// <summary>
 /// Gets or sets a data value with a specified key.
 /// </summary>
 /// <param name="key">Case-sensitive data key.</param>
 /// <exception cref="ArgumentException">the key does not consist solely of letters,
 /// numbers, and the period, underscore, and space characters.</exception>
 public string this[string key]
 {
     get
     {
         return(this.data[key]);
     }
     set
     {
         CustomActionData.ValidateKey(key);
         this.data[key] = value;
     }
 }
 /// <summary>
 /// Adds a key and value to the data collection.
 /// </summary>
 /// <param name="key">Case-sensitive data key.</param>
 /// <param name="value">Data value (may be null).</param>
 /// <exception cref="ArgumentException">the key does not consist solely of letters,
 /// numbers, and the period, underscore, and space characters.</exception>
 public void Add(string key, string value)
 {
     CustomActionData.ValidateKey(key);
     this.data.Add(key, value);
 }
 /// <summary>
 /// Adds an item with key and value to the data collection.
 /// </summary>
 /// <param name="item">Case-sensitive data key, with a data value that may be null.</param>
 /// <exception cref="ArgumentException">the key does not consist solely of letters,
 /// numbers, and the period, underscore, and space characters.</exception>
 public void Add(KeyValuePair <string, string> item)
 {
     CustomActionData.ValidateKey(item.Key);
     this.data.Add(item);
 }