Пример #1
0
        private static IPropertyDefinition BuildProperty(IMicroModel model, string propertyName, Type propertyType)
        {
            var property = new DelegatePropertyDescriptor(propertyName, model, propertyType);

            model.AddProperty(property);
            return(property);
        }
Пример #2
0
        PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes)
        {
            lock (m_parameters)
            {
                var properties = new PropertyDescriptor[m_parameters.Count];

                for (int i = 0; i < m_parameters.Count; ++i)
                {
                    var parm = m_parameters[i];

                    properties[i] = new DelegatePropertyDescriptor(GetType(), parm.Name, typeof(ParameterNode), o => GetParameterValue(parm.Name), null);
                }
                ;

                return(new PropertyDescriptorCollection(properties));
            };
        }
Пример #3
0
        public static IEnumerable <IPropertyDefinition> AllProperties(this IMicroModel model, object source)
        {
            var properties      = TypeDescriptor.GetProperties(source).OfType <PropertyDescriptor>();
            var propertiesToAdd = new List <IPropertyDefinition>();

            foreach (var sourceProperty in properties)
            {
                var property      = sourceProperty;
                var propertyToAdd = new DelegatePropertyDescriptor(property.Name, model, property.PropertyType);
                propertyToAdd.Getter = x => property.GetValue(source);
                if (!property.IsReadOnly)
                {
                    propertyToAdd.Setter = (x, v) => property.SetValue(source, v);
                }

                model.AddProperty(propertyToAdd);
                propertiesToAdd.Add(propertyToAdd);
            }
            return(propertiesToAdd);
        }