private static IContainerInitializer CreateTask(IDependencyResolver dependencyResolver, Type type, IAppDomainHelper[] appDomainHelpers)
{
var constructor = type.GetConstructors().First();
var parameters = constructor.GetParameters();
if (!parameters.Any())
return Activator.CreateInstance(type) as IContainerInitializer;
var parameterValues = new object[parameters.Length];
for (var i=0;i<parameters.Length;i++)
{
if (typeof (IDependencyResolver).IsAssignableFrom(parameters[i].ParameterType))
parameterValues[i] = dependencyResolver;
else if (parameters[i].ParameterType == typeof (IAppDomainHelper[]))
parameterValues[i] = appDomainHelpers;
else
{
parameterValues[i] = Activator.CreateInstance(parameters[i].ParameterType);
}
}
return constructor.Invoke(parameterValues) as IContainerInitializer;
}