internal static void AddTypes(TypeInfo[] types, string prefix = null) { if (types != null && types.Length > 0) { types .Where(t => t != null && !t.IsAbstract && t.Name.EndsWith("ClientActions") && typeof(PersistentObjectClientActions).GetTypeInfo().IsAssignableFrom(t)) .Run(t => cache[prefix + t.Name.Substring(0, t.Name.Length - 13)] = Expression.Lambda<Func<PersistentObjectClientActions>>(Expression.New(t.AsType())).Compile()); } }