Ejemplo n.º 1
0
        /// <summary>
        /// Get generator for given name and arguments.
        /// </summary>
        /// <param name="method">Name of method generator.</param>
        /// <param name="arguments">Arguments of call.</param>
        /// <returns>Instruction generator for given name.</returns>
        private GeneratorBase getGenerator(ref MethodID method, InstanceInfo[] arguments)
        {
            if (method.NeedsDynamicResolving)
            {
                method = _loader.DynamicResolve(method, arguments);
            }

            if (method == null)
            {
                return(null);
            }

            GeneratorBase resolved;

            if (!_methods.TryGetValue(method, out resolved))
            {
                //register resolved method
                resolved         = _loader.StaticResolve(method);
                _methods[method] = resolved;
            }

            return(resolved);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Resolve method with dynamic argument info
 /// </summary>
 /// <param name="method">Resolved method</param>
 /// <param name="dynamicArgumentInfo">Dynamic argument info, collected from argument instances</param>
 /// <returns>Resolved method which will be asked for generator by StaticResolve</returns>
 public override MethodID DynamicResolve(MethodID method, InstanceInfo[] dynamicArgumentInfo)
 {
     return(_wrapped.DynamicResolve(method, dynamicArgumentInfo));
 }