internal object GetDynamicParameters(params string[] parameterSets) { if (parameterSets.Length == 0) { parameterSets = new[] { ParameterSet.Dynamic } } ; if (dynamicParameterSet == null) { var properties = ReflectionCacheManager.Get(typeof(TObject)).Properties. Where(p => p.GetAttribute <PropertyParameterAttribute>() != null). Select(p => Tuple.Create((Property)p.GetAttribute <PropertyParameterAttribute>().Property, p)).ToList(); dynamicParameterSet = new DynamicParameterSet <Property>( parameterSets, e => ReflectionCacheManager.GetArrayPropertyInfo(properties.FirstOrDefault(p => p.Item1 == e)?.Item2.Property.PropertyType), this ); } return(dynamicParameterSet.Parameters); }