private void ParseMetadata(Type entityType) { //type info TikEntityAttribute entityAttr = entityType.GetCustomAttributes(false).FirstOrDefault(a => a is TikEntityAttribute) as TikEntityAttribute; if (entityAttr != null) { entityInfo = entityAttr; } else { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Entity {0} is not marked by {1} attribute.", entityType, typeof(TikEntityAttribute))); } //properties info propertiesInfo = new Dictionary <string, TikPropertyAttribute>(); foreach (PropertyInfo propInfo in entityType.GetProperties()) { TikPropertyAttribute propAttr = propInfo.GetCustomAttributes(false).FirstOrDefault(a => a is TikPropertyAttribute) as TikPropertyAttribute; if (propAttr != null) { Type propType = propAttr.PropertyType; if (propType != propInfo.PropertyType) { throw new InvalidProgramException(string.Format(CultureInfo.CurrentCulture, "Inconsistent property '{0} type in {1}. Real type {2}, declared in TikPropertyAttribute {3}.", propInfo.Name, entityType, propInfo.PropertyType, propType)); } propertiesInfo.Add(propAttr.PropertyName, propAttr); } } }
private void ParseMetadata(Type entityType) { //type info TikEntityAttribute entityAttr = entityType.GetCustomAttributes(false).FirstOrDefault(a => a is TikEntityAttribute) as TikEntityAttribute; if (entityAttr != null) entityInfo = entityAttr; else throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Entity {0} is not marked by {1} attribute.", entityType, typeof(TikEntityAttribute))); //properties info propertiesInfo = new Dictionary<string, TikPropertyAttribute>(); foreach (PropertyInfo propInfo in entityType.GetProperties()) { TikPropertyAttribute propAttr = propInfo.GetCustomAttributes(false).FirstOrDefault(a => a is TikPropertyAttribute) as TikPropertyAttribute; if (propAttr != null) { Type propType = propAttr.PropertyType; if (propType != propInfo.PropertyType) { throw new InvalidProgramException(string.Format(CultureInfo.CurrentCulture, "Inconsistent property '{0} type in {1}. Real type {2}, declared in TikPropertyAttribute {3}.", propInfo.Name, entityType, propInfo.PropertyType, propType)); } propertiesInfo.Add(propAttr.PropertyName, propAttr); } } }