diff --git a/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs b/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs
index e7917c8..eb59599 100644
--- a/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs
+++ b/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs
@@ -91,7 +91,7 @@ protected void RegisterEmbeddedTemplate(string name)
{
var templatePath = $"ECoreNetto.Reporting.Templates.{name}.hbs";
- var template = ResourceLoader.LoadEmbeddedResource(templatePath);
+ var template = ResourceLoader.LoadEmbeddedResource(typeof(HandleBarsReportGenerator).Assembly, templatePath);
var compiledTemplate = Handlebars.Compile(template);
diff --git a/ECoreNetto.Reporting/Resources/ResourceLoader.cs b/ECoreNetto.Reporting/Resources/ResourceLoader.cs
index ccf69d3..aa0ed3d 100644
--- a/ECoreNetto.Reporting/Resources/ResourceLoader.cs
+++ b/ECoreNetto.Reporting/Resources/ResourceLoader.cs
@@ -27,21 +27,22 @@ namespace ECoreNetto.Reporting.Resources
///
/// Class responsible for loading embedded resources.
///
- internal static class ResourceLoader
+ public static class ResourceLoader
{
///
- /// Load an embedded resource
+ /// Load an embedded resource from the provided
///
+ ///
+ /// The whose manifest contains the embedded resource
+ ///
///
/// The path of the embedded resource
///
///
/// a string containing the contents of the embedded resource
///
- public static string LoadEmbeddedResource(string path)
+ public static string LoadEmbeddedResource(Assembly assembly, string path)
{
- var assembly = Assembly.GetExecutingAssembly();
-
using var stream = assembly.GetManifestResourceStream(path);
using var reader = new StreamReader(stream ?? throw new MissingManifestResourceException());
diff --git a/ECoreNetto.Tools/Resources/ResourceLoader.cs b/ECoreNetto.Tools/Resources/ResourceLoader.cs
index 55b9db2..aed2b2f 100644
--- a/ECoreNetto.Tools/Resources/ResourceLoader.cs
+++ b/ECoreNetto.Tools/Resources/ResourceLoader.cs
@@ -20,17 +20,18 @@
namespace ECoreNetto.Tools.Resources
{
- using System.IO;
using System.Reflection;
- using System.Resources;
+
+ using SharedResourceLoader = ECoreNetto.Reporting.Resources.ResourceLoader;
///
- /// Class responsible for loading embedded resources.
+ /// Class responsible for loading embedded resources from this assembly and for the
+ /// Tools-specific version and logo queries.
///
public static class ResourceLoader
{
///
- /// Load an embedded resource
+ /// Load an embedded resource from the executing (ECoreNetto.Tools) assembly
///
///
/// The path of the embedded resource
@@ -40,13 +41,7 @@ public static class ResourceLoader
///
public static string LoadEmbeddedResource(string path)
{
- var assembly = Assembly.GetExecutingAssembly();
-
- using var stream = assembly.GetManifestResourceStream(path);
-
- using var reader = new StreamReader(stream ?? throw new MissingManifestResourceException());
-
- return reader.ReadToEnd();
+ return SharedResourceLoader.LoadEmbeddedResource(Assembly.GetExecutingAssembly(), path);
}
///