Пример #1
0
        private object FastCreateObject(Type objtype)
        {
            try
            {
                if (_createrow != null)
                {
                    return(_createrow());
                }
                else
                {
                    DynamicMethod dynMethod = new DynamicMethod("_", objtype, null);
                    ILGenerator   ilGen     = dynMethod.GetILGenerator();

                    ilGen.Emit(OpCodes.Newobj, objtype.GetConstructor(Type.EmptyTypes));
                    ilGen.Emit(OpCodes.Ret);
                    _createrow = (CreateRow)dynMethod.CreateDelegate(typeof(CreateRow));
                    return(_createrow());
                }
            }
            catch (Exception exc)
            {
                throw new Exception(string.Format("Failed to fast create instance for type '{0}' from assemebly '{1}'",
                                                  objtype.FullName, objtype.AssemblyQualifiedName), exc);
            }
        }
Пример #2
0
        public Row(int row, int column)                         //конструктор
        {
            onRowCreate += new CreateRow(Cell.Re_Linked_atRow); //(класс Cell) // поиск границ соседей лабиринта
            this.row     = row;

            for (int i = 0; i < Grid.rL.Capacity; i++) //пока не привысили количество заданных строк
            {
                for (int j = 0; j < column; j++)       //пока не привысили количество заданных столбцов
                {
                    cL.Add(new Column(column));        // создаем столбцы (см  class Column)
                }
            }
            onRowCreate.Invoke();
        }
Пример #3
0
        protected void GetData(SpecialSqlController.Tables table, CreateRow create)
        {
            DataList.Clear();
            List <Dictionary <string, string> > dataList = Controller.GetAllFromWithNames(table, "Enable=1");

            foreach (var d in dataList)
            {
                Dictionary <string, string> r = create(d);
                if (r.Count > 0)
                {
                    DataList.Add(r);
                }
            }
        }