/// <summary>
 /// Retrieve registration wrappers for all (public, static) methods marked with [ExcelCommand] attributes,
 /// in all exported assemblies.
 /// </summary>
 /// <returns>All public static methods in registered assemblies that are decorated with an [ExcelCommand] attribute
 /// (or a derived attribute)
 /// </returns>
 public static IEnumerable <ExcelCommandRegistration> GetExcelCommands()
 {
     return(from ass in ExcelIntegration.GetExportedAssemblies()
            from typ in ass.GetTypes()
            from mi in typ.GetMethods(BindingFlags.Public | BindingFlags.Static)
            where mi.GetCustomAttribute <ExcelCommandAttribute>() != null
            select new ExcelCommandRegistration(mi));
 }
 public override IEnumerable <Assembly> GetExportedAssemblies()
 {
     return(ExcelIntegration.GetExportedAssemblies());
 }