1) Add a file as an "embedded resource"
2) if the file is in a "subfolder" note the "folder discussion" below
3) client call to class
ResourceFileManager objResourceFileManager = new ResourceFileManager();
string x = objResourceFileManager.ReadResourceString("folder.resorceFile.txt");
4) class
using System;
using System.IO;
using System.Reflection;
public class ResourceFileManager
{
public string ReadResourceString(string resourceFileName)
{
//value for our return value
string resourceValue = string.Empty;
try
{
//------------------------------------------------------------------
//debug - this will actually help you locate callers resourceFileName name
//eg is resx is in an ASP.NET folder "myFolder", -> "myFolder.resourceFileName"
//------------------------------------------------------------------
string[] names = this.GetType().Assembly.GetManifestResourceNames();
//------------------------------------------------------------------
//get current assembly name
//------------------------------------------------------------------
Assembly assembly = this.GetType().Assembly;
string assemblyName = assembly.GetName().Name;
//------------------------------------------------------------------
//get resource value (text, string)
//------------------------------------------------------------------
StreamReader _textStreamReader
= new StreamReader(assembly.GetManifestResourceStream(assemblyName + "." + resourceFileName));
resourceValue = _textStreamReader.ReadToEnd();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
resourceValue = string.Empty;
}
return resourceValue;
}
}