Volante.Impl.ClassDescriptor.OnLoad C# (CSharp) Méthode

OnLoad() public méthode

public OnLoad ( ) : void
Résultat void
        public override void OnLoad()
        {
            cls = lookup(Database, name);
            int n = allFields.Length;
            bool hasTransparentAttribute = cls.GetCustomAttributes(typeof(TransparentPersistenceAttribute), true).Length != 0;
            for (int i = n; --i >= 0; )
            {
                FieldDescriptor fd = allFields[i];
                fd.Load();
                fd.field = cls.GetField(fd.fieldName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
                if (hasTransparentAttribute && fd.type == FieldType.tpObject && isVolanteInternalType(fd.field.FieldType))
                {
                    fd.recursiveLoading = true;
                }

                switch (fd.type)
                {
                    case FieldType.tpArrayOfOid:
                        fd.constructor = GetConstructor(fd.field, "ConstructArray");
                        break;
                    case FieldType.tpLink:
                        fd.constructor = GetConstructor(fd.field, "ConstructLink");
                        break;
                    default:
                        break;
                }
            }

            defaultConstructor = cls.GetConstructor(BindingFlags.Instance | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly, null, defaultConstructorProfile, null);
            if (defaultConstructor == null && !typeof(ValueType).IsAssignableFrom(cls))
            {
                throw new DatabaseException(DatabaseException.ErrorCode.DESCRIPTOR_FAILURE, cls);
            }
            DatabaseImpl s = (DatabaseImpl)Database;
            if (!s.classDescMap.ContainsKey(cls))
            {
                ((DatabaseImpl)Database).classDescMap.Add(cls, this);
            }
        }