Exemplo n.º 1
0
        public static ParameterExpression GetOrCreateParameter(this Type type, string name = null)
        {
            var cache = GlobalContext.Instance.Cache.CreateScoped <TypeKey, ParameterExpression>();

            var parameter = cache.GetOrAdd(
                TypeKey.ForParameter(type, name),
                key => Parameters.Create(key.Type, key.Name));

            return(parameter);
        }
Exemplo n.º 2
0
        public static ParameterExpression GetOrCreateParameter(this Type type, string name = null)
        {
            if (type == null)
            {
                return(null);
            }

            var cache = GlobalContext.Instance
                        .Cache
                        .CreateScoped <TypeKey, ParameterExpression>(default(HashCodeComparer <TypeKey>));

            var parameter = cache.GetOrAdd(
                TypeKey.ForParameter(type, name),
                key => Parameters.Create(key.Type, key.Name));

            return(parameter);
        }