public TypeProperties(Type type)
        {
            TypeInfo = ReflectionCache.GetInfo(type);

            Properties = new Dictionary <string, PropertyData>();

            foreach (var propInfo in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                Properties.Add(propInfo.Name, new PropertyData(propInfo, TypeInfo));
            }
        }