Exemplo n.º 1
0
 public AppData()
 {
     MyClassLoader.loadChildClasses(typeof(AbstractModel));
     MyClassLoader.loadChildClasses(typeof(AbstractProcess));
     MyClassLoader.loadChildClasses(typeof(AbstractValue));
     MyClassLoader.loadChildClasses(typeof(AbstractBusinessProcess));
 }
Exemplo n.º 2
0
        /// <summary>
        ///  Создание объекта из сохраненного ранее состояния в JSON объекте. Сначала создается экземпляр класса, затем
        ///  восстанавливается его состояние методом restore(). Этот метод также за восстановление всех простых полей и сложных объектов,
        ///  которые принадлежат текущему объекту. Восстановление объекта можно представить в виде дерева. Далее проходит валидация созданного
        ///  объекта и вызввается метод init(), который подготовит объекты к работе. Метод init() вызывается ПОСЛЕ того, как все объекты будут
        ///  проинициализированны из-за специфики метода restore()
        /// </summary>
        /// <param name="state"> сохраненное состояние объекта </param>
        /// <returns></returns>
        public static AbstractStorable newInstance(JObject state)
        {
            Type type = MyClassLoader.getTypeByName((String)state.GetValue(NAME));

            if (type == null)
            {
                throw new CreateModelException((String)state.GetValue(NAME) + " create instance exeption");
            }
            System.Reflection.ConstructorInfo ci = type.GetConstructor(new Type[] { });
            AbstractStorable instance            = (AbstractStorable)ci.Invoke(new object[] { });

            instance.restore(state);
            instance.validate();
            instance.init();
            return(instance);
        }