public virtual ModifierBase CreateClassSelector(Type classSelectorType, String className) { Assume.NotNull(classSelectorType, nameof(classSelectorType)); Assume.NotBlank(className, nameof(className)); var constructors = classSelectorType.GetConstructors(); var defaultConstructor = constructors.FirstOrDefault( constructor => { var args = constructor.GetParameters().ToArray(); return(args.Length == 1 && args.First().ParameterType == typeof(String)); }); if (defaultConstructor == null) { throw new Exception("ClassSelector type needs to have one-parameter constructor."); } return(defaultConstructor.Invoke(new[] { className }) as ModifierBase); }