/// <summary>
        /// Initialize all instance of a specific type
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="block"></param>
        /// <param name="initializeAction"></param>
        /// <returns></returns>
        public static IExportRegistrationBlock ExportInitialize <T>(this IExportRegistrationBlock block,
                                                                    Action <T> initializeAction)
        {
            var func = new Func <object, object>(instance =>
            {
                initializeAction((T)instance);
                return(instance);
            });

            block.AddInspector(new ExportInitializeInspector(func, typeof(T)));

            return(block);
        }
 /// <summary>
 /// Ups the priority of partially closed generics based on the number of closed parameters
 /// </summary>
 /// <param name="registrationBlock">registration block</param>
 public static void PrioritizePartiallyClosedGenerics(this IExportRegistrationBlock registrationBlock)
 {
     registrationBlock.AddInspector(new PartiallyClosedGenericPriorityAugmenter());
 }