using System; using System.IO; using System.Reflection; namespace SM.Utility { public class AssemblyUtility { /// /// Read a file that is saved in a assembly /// /// The assembly that contains the file /// The path to the file inside the assembly /// public static string ReadAssemblyFile(Assembly ass, string path) { return new StreamReader(GetAssemblyStream(ass, path)).ReadToEnd(); } /// /// Read a file that is saved in the calling assembly /// /// The path to the file inside the assembly /// public static string ReadAssemblyFile(string path) { return ReadAssemblyFile(Assembly.GetCallingAssembly(), path); } public static Stream GetAssemblyStream(Assembly ass, string path) { return ass.GetManifestResourceStream(ass.GetName().Name + "." + path) ?? throw new InvalidOperationException("Assembly couldn't find resource at path '" + path + "'."); } public static Stream GetAssemblyStream(string path) { return GetAssemblyStream(Assembly.GetCallingAssembly(), path); } } }