Ejemplo n.º 1
0
 internal Type GetPropertyType(ValidationContext validationContext)
 {
     ValidationAttributeStore.EnsureValidationContext(validationContext);
     ValidationAttributeStore.TypeStoreItem     typeStoreItem     = this.GetTypeStoreItem(validationContext.ObjectType);
     ValidationAttributeStore.PropertyStoreItem propertyStoreItem = typeStoreItem.GetPropertyStoreItem(validationContext.MemberName);
     return(propertyStoreItem.PropertyType);
 }
Ejemplo n.º 2
0
            internal IEnumerable <ValidationAttribute> GetPropertyValidationAttributes(ValidationContext validationContext)
            {
                ValidationAttributeStore.EnsureValidationContext(validationContext);
                ValidationAttributeStore.TypeStoreItem     typeStoreItem     = this.GetTypeStoreItem(validationContext.ObjectType);
                ValidationAttributeStore.PropertyStoreItem propertyStoreItem = typeStoreItem.GetPropertyStoreItem(validationContext.MemberName);
                var attributes = propertyStoreItem.ValidationAttributes;

                List <IOrderValidationAttribute> list  = new List <IOrderValidationAttribute>();
                List <ValidationAttribute>       list2 = new List <ValidationAttribute>();

                foreach (var attribute in attributes)
                {
                    var item = attribute as IOrderValidationAttribute;
                    if (item != null)
                    {
                        list.Add(item);
                    }
                    else
                    {
                        list2.Add(attribute);
                    }
                }

                var result =
                    list
                    .OrderBy(x => x.Order)
                    .OfType <ValidationAttribute>()
                    .Union(list2);

                return(result);
            }
Ejemplo n.º 3
0
            private ValidationAttributeStore.TypeStoreItem GetTypeStoreItem(Type type)
            {
                if (type == null)
                {
                    throw new ArgumentNullException("type");
                }
                Dictionary <Type, ValidationAttributeStore.TypeStoreItem> typeStoreItems = this._typeStoreItems;

                ValidationAttributeStore.TypeStoreItem result;
                lock (typeStoreItems)
                {
                    ValidationAttributeStore.TypeStoreItem typeStoreItem = null;
                    if (!this._typeStoreItems.TryGetValue(type, out typeStoreItem))
                    {
                        IEnumerable <Attribute> attributes = TypeDescriptor.GetAttributes(type).Cast <Attribute>();
                        typeStoreItem = new ValidationAttributeStore.TypeStoreItem(type, attributes);
                        this._typeStoreItems[type] = typeStoreItem;
                    }
                    result = typeStoreItem;
                }
                return(result);
            }