コード例 #1
0
        /// <summary>
        ///   Регистрация smart-свойства.
        /// </summary>
        /// <param name="propertyName">Название smart-свойства.</param>
        /// <param name="propertyType">Возвращиемый тип smart-свойства.</param>
        /// <param name="ownerType">Объект, которому принадлежит smart-свойство.</param>
        /// <param name="metadata">Метаданные smart-свойства.</param>
        /// <param name="checkValueCallback">Метод обратного вызова для проверки присваиваемого значения smart-свойства.</param>
        /// <returns>smart-свойство.</returns>
        public static SmartProperty Register(string propertyName, Type propertyType, Type ownerType,
                                             SmartMetadata metadata, SmartPropertyCheckValueCallback checkValueCallback)
        {
            var result = new SmartProperty
            {
                PropertyName       = propertyName,
                PropertyType       = propertyType,
                OwnerType          = ownerType,
                Metadata           = metadata,
                CheckValueCallback = checkValueCallback
            };

            return(result);
        }
コード例 #2
0
        /// <summary>
        ///   Регистрация smart-свойства "только для чтения".
        /// </summary>
        /// <param name="propertyName">Название smart-свойства.</param>
        /// <param name="propertyType">Возвращиемый тип smart-свойства.</param>
        /// <param name="ownerType">Объект, которому принадлежит smart-свойство.</param>
        /// <param name="defaultValue">Значение smart-свойства по-умолчанию.</param>
        /// <param name="checkValueCallback">Метод обратного вызова для проверки присваиваемого значения smart-свойства.</param>
        /// <returns>smart-свойство.</returns>
        public static SmartPropertyKey RegisterReadonly(string propertyName, Type propertyType,
                                                        Type ownerType, object defaultValue, SmartPropertyCheckValueCallback checkValueCallback)
        {
            var key = new SmartProperty
            {
                PropertyName       = propertyName,
                PropertyType       = propertyType,
                OwnerType          = ownerType,
                Metadata           = new SmartMetadata(defaultValue, true),
                CheckValueCallback = checkValueCallback
            };

            return(new SmartPropertyKey(key));
        }