SimpleIoc does not check whether the selected constructor is private.
This issue lies in GetConstructorInfo, these lines should be modified:
= (from t in constructorInfos
let attribute = t.GetCustomAttribute(typeof (PreferredConstructorAttribute))
let attribute = Attribute.GetCustomAttribute(t, typeof(PreferredConstructorAttribute))
where attribute != null
If the constructor is private a IndexOutOfRangeException is raised, this is really misleading.
thank you laurent for your amazing toolkit, this is the swiss knife of all WPF/SL developers!