Beispiel #1
0
        private Expression Resolve(ParameterInfo param)
        {
            var servicesArg = Expression.Parameter(typeof(IServiceProvider), "services");
            var resolver    = new ArgumentResolver();

            return(resolver.Resolve(param, servicesArg));
        }
 public FunctionExprFrame(AccessorFrame callFrame, FunctionExpr e, IReadOnlyList <Closure> closures)
     : base(callFrame.Visitor, e)
 {
     _arguments = new ArgumentResolver(this, callFrame.Expr.Arguments);
     _closures  = closures;
     // Registering closed variables.
     foreach (var c in _closures)
     {
         Visitor.ScopeManager.Register(c);
     }
 }
Beispiel #3
0
        public void Register <TArgument>(ArgumentResolver <TArgument> resolverInstance, bool overwrite = false)
        {
            Register <TArgument, ArgumentResolver <TArgument> >(overwrite);

            var typeKey = typeof(TArgument);

            if (overwrite && m_cache.ContainsKey(typeKey))
            {
                m_cache.Remove(typeKey);
            }

            m_cache.Add(typeKey, resolverInstance);
        }
Beispiel #4
0
 public void Init()
 {
     _argumentResolver = new ArgumentResolver();
 }