/// <summary>
        /// Initializes a new instance of the <see cref="IndexedValueRuleTable" /> class.
        /// </summary>
        /// <param name="valueRuleSignature">The value rule signature.</param>
        /// <exception cref="ArgumentNullException">If any parameter is <c>null</c>.</exception>
        public IndexedValueRuleTable(IValueRuleSignature valueRuleSignature)
            : base(GetDimensions(valueRuleSignature).ToArray())
        {
            if (valueRuleSignature == null)
            {
                throw new ArgumentNullException("valueRuleSignature");
            }

            this.valueRuleSignature = valueRuleSignature;
        }
 /// <summary>
 /// Gets the dimensions of the specified value rule signature.
 /// </summary>
 /// <param name="signature">The signature.</param>
 /// <returns>The dimensions.</returns>
 private static IEnumerable <IProperty> GetDimensions(IValueRuleSignature signature)
 {
     return(signature.DimensionInputProperties);
 }