/// <summary>
 /// Get or set the value of an attribute, by name
 /// Changes temporarily override values from the MetaData database, but are not saved.
 /// </summary>
 public string this[CswEnumNbtPropertyAttributeName AttributeName, CswEnumNbtSubFieldName SubFieldName = null]
 {
     get
     {
         string ret = string.Empty;
         CswNbtFieldTypeAttribute attr = Attributes.FirstOrDefault(a => a.Name == AttributeName && (SubFieldName == null || a.SubFieldName == SubFieldName));
         if (null != attr)
         {
             ret = attr.Value;
         }
         //else
         //{
         //    throw new CswDniException( CswEnumErrorType.Error, "Property Configuration Error",
         //                               "Illegal get; Unrecognized property attribute '" + AttributeName + "' for field type '" + getFieldTypeValue() + "'" );
         //}
         return(ret);
     }
     set
     {
         CswNbtFieldTypeAttribute attr = Attributes.FirstOrDefault(a => a.Name == AttributeName && (SubFieldName == null || a.SubFieldName == SubFieldName));
         if (null != attr)
         {
             attr.Value = value;
         }
         //else
         //{
         //    throw new CswDniException( CswEnumErrorType.Error, "Property Configuration Error",
         //                               "Illegal set; Unrecognized property attribute '" + AttributeName + "' for field type '" + getFieldTypeValue() + "'" );
         //}
     }
 }
 /// <summary>
 /// Gets or sets a property attribute.  Changes temporarily override values from the MetaData database, but are not saved.
 /// </summary>
 public string this[CswEnumNbtPropertyAttributeName AttributeName, CswEnumNbtSubFieldName SubFieldName = null]
 {
     get { return(_CswNbtNodePropData[AttributeName, SubFieldName]); }
     set { _CswNbtNodePropData[AttributeName, SubFieldName] = value; }
 }