diff --git a/BurnOutSharp/ScanningClasses.cs b/BurnOutSharp/ScanningClasses.cs index 7f848457..7c689e69 100644 --- a/BurnOutSharp/ScanningClasses.cs +++ b/BurnOutSharp/ScanningClasses.cs @@ -27,6 +27,20 @@ namespace BurnOutSharp } } + /// + /// Cache for all IExtractable types + /// + public static IEnumerable ExtractableClasses + { + get + { + if (extractableClasses == null) + extractableClasses = InitCheckClasses(); + + return extractableClasses; + } + } + /// /// Cache for all ILinearExecutableCheck types /// @@ -92,6 +106,11 @@ namespace BurnOutSharp /// private static IEnumerable contentCheckClasses; + /// + /// Cache for all IExtractable types + /// + private static IEnumerable extractableClasses; + /// /// Cache for all ILinearExecutableCheck types /// @@ -120,8 +139,7 @@ namespace BurnOutSharp /// Initialize all implementations of a type /// private static IEnumerable InitCheckClasses() - => InitCheckClasses(Assembly.GetExecutingAssembly()) - .Concat(InitCheckClasses(typeof(BinaryObjectScanner.Packer._DUMMY).Assembly)) + => InitCheckClasses(typeof(BinaryObjectScanner.Packer._DUMMY).Assembly) .Concat(InitCheckClasses(typeof(BinaryObjectScanner.Protection._DUMMY).Assembly)); ///