Пример #1
0
        private RenderAction _createFromPool(System.Type type, RenderActionPool pool, object[] parameters)
        {
            // TODO:
            var ret = type.GetConstructor(System.Type.EmptyTypes).Invoke(null) as RenderAction;

            if (pool.init != null)
            {
                pool.init.Invoke(ret, parameters);
            }
            return(ret);
        }
Пример #2
0
        public RenderAction createRenderAction(System.Type type, object[] parameters)
        {
            RenderActionPool pool;

            if (!m_pools.TryGetValue(type, out pool))
            {
                pool = new RenderActionPool();
                foreach (var mi in type.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy))
                {
                    if (mi.Name == "init")
                    {
                        pool.init = mi;
                        break;
                    }
                }
            }
            return(_createFromPool(type, pool, parameters));
        }