private static IEnumerable<Type> AbstractDependenciesOf(Type type)
{
return type.GetConstructors()
.SelectMany(x => x.GetParameters())
.Distinct()
.Where(x => x.ParameterType.IsAbstract)
.Where(x => x.ParameterType.IsInterface == false)
.Select(x => x.ParameterType);
}