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); }
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)); }