Пример #1
0
        private static void DoPostTypeMemberConversion(Type type)
        {
            bool hasError = false;

            foreach (MemberInfo memberInfo in ChoType.GetMemberInfos(type, typeof(ChoTypeConverterAttribute)))
            {
                object memberValue = null;
                try
                {
                    memberValue = ChoType.GetMemberValue(null, memberInfo.Name);
                    ChoType.SetMemberValue(null, memberInfo, ChoObject.ConvertValueToObjectMemberType(type, memberInfo, memberValue) /* ChoConvert.ChangeType(configObject, memberInfo) */);
                }
                catch (TargetInvocationException)
                {
                    throw;
                }
                catch (ChoFatalApplicationException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    hasError = true;

                    ChoConfigurationObjectErrorManagerService.SetObjectMemberError(type, memberInfo.Name, String.Format("[Value: {0}] - {1}", ChoString.ToString(memberValue), ex.Message));
                    ChoType.SetMemberDefaultValue(null, memberInfo.Name);
                }
            }

            if (hasError)
            {
                ChoConfigurationObjectErrorManagerService.SetObjectError(type, "Object has some validation errors.");
            }
        }