Ejemplo n.º 1
0
        public static void Initialize(Type type)
        {
            ChoGuard.ArgumentNotNull(type, "Type");
            if (IsInitialized(type))
            {
                return;
            }

            DoPostTypeMemberConversion(type);

            foreach (FieldInfo fieldInfo in ChoType.GetFields(type))
            {
                if (!fieldInfo.IsStatic)
                {
                    continue;
                }

                object fieldValue = ChoType.GetStaticFieldValue(type, fieldInfo.Name);
                if (fieldValue == null)
                {
                    continue;
                }

                if (!(fieldValue is string) && fieldValue is IEnumerable)
                {
                    foreach (object fieldItemValue in (IEnumerable)fieldValue)
                    {
                        if (!(fieldItemValue is IChoObjectInitializable))
                        {
                            break;
                        }

                        ChoObjectInitializer.Initialize(fieldItemValue);
                    }
                }
                else if (fieldValue.GetType().IsPrimitive || fieldValue is string)
                {
                }
                else
                {
                    ChoObjectInitializer.Initialize(fieldValue);
                }
            }
        }