private List <object> GetConstructorParameters(IBuilderContext context) { var parameters = new List <object>(); var policy = new DefaultUnityConstructorSelectorPolicy(); var constructor = policy.SelectConstructor(context); ConstructorInfo constructorInfo; if (constructor == null) { // Unit constructor selector doesn't seem to want to find abstract class protected constructors // quickly find one here... var buildKey = (NamedTypeBuildKey)context.BuildKey; var largestConstructor = buildKey.Type.GetConstructors( BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) .OrderByDescending(o => o.GetParameters().Length) .FirstOrDefault(); constructorInfo = largestConstructor; } else { constructorInfo = constructor.Constructor; } foreach (var parameterInfo in constructorInfo.GetParameters()) { parameters.Add(_container.Resolve(parameterInfo.ParameterType)); } return(parameters); }